로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
108 답변완료[소스] 디지털 시계 학생들 소스 N.T.C 2006-04-28 7,740
[소스] 디지털 시계 학생들 소스 우리 학생들이 C 실습 시간에 짠 디지털 시계입니다. 참고하세요. 감사합니다.
관리자 답변 관리자 · 2026-10-14
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 newtc@newtc.co.kr 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
107 답변완료ATmega128 pro kit관련 질문 최병갑 2006-04-28 7,241
KD-128PRO 완제품을 석영전자에서 2세트를 구매하였는데, 메뉴얼에는 7-세그먼트가 있던데 키트에는 부착이 되어 있지 않더라구요. 2세트모두 안달려 있어서 원래 없는것인지 궁굼합니다.
관리자 답변 N.T.C · 2006-04-28
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사합니다. 세븐 세그먼트가 들어 있어야 하는 데, 포장시 빠뜨린 것 같습니다. 이 곳에 비밀글로 주소를 남겨 주시거나 하면, 제가 그 주소로 세븐 세그먼트를 우편으로 보내드리겠습니다. 아니면, 회사로 언제 방문하시면 수령이 가능하시구요. 회사로 직접 방문하실 경우, 파워보드 하나를 선물로 드리겠습니다. 감사합니다.
106 답변완료터보씨3.0 용 2006-04-28 7,216
./....
관리자 답변 관리자 · 2026-10-14
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 newtc@newtc.co.kr 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
105 답변완료http://www.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_res&no=66 df 2006-04-28 7,934
관리자 답변 관리자 · 2026-10-14
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 newtc@newtc.co.kr 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
104 답변완료모터제어 문의요 윤정호 2006-04-26 7,073
Atmega128을 이용해서 커튼을 제어할 수 있게 만들려고 합니다. 답변을 해주시는 분이 전에 전자상가에서 만났던 선배님이신지 잘 모르겠네요. 맞으시면 기억나실지도 모르겠는데요..^^ 모형으로 만들것이기 때문에 커튼이 별로 크진 않을 것 같습니다. 어떤 모터를 사용하는게 좋은지 가르쳐주시고 모터제어부의 회로도와 소스예제도 보내주셨으면 합니다. 항상 행복하시고 즐거운 하루 보내세요~
관리자 답변 N.T.C · 2006-04-26
안녕하세요? 뉴테크놀로지 컴패니 관리자입니다. 전에 만났던 선배가 맞구요. 후배님 이렇게 기억해 주니 고맙군요. 커튼 모형 제어라면, 무게가 얼마나 될려는 지 궁금하군요. 토크에 따라서 아주 가볍다면 (< 200g) DC 기어드 모터(소형)을 사용하셔도 될 것 같구요. 이 경우, 제어가 무지 쉬워지겠지요. 포트 두 핀에 01 또는 10을 줌에 따라서 상 하로 움직일 테니까요. 이경우, 자료실에서 Mega16 라인트래이서 회로도를 참고하시구요. 거기 보면, BA6208을 사용하는 예제가 나와 있습니다. 대략 무게가 200g 이상이라면 스테핑 모터를 사용하는 것이 바람직하구요. 아주 무겁다면 다시 DC 모터를 이용하는 것도 괜찮을 것 같습니다. 하기에 따라서는 서보 모터도 가벼울때는 사용이 가능하겠습니다. 각 모터의 구동 소스는 128Pro 모듈이나 킷트를 구입하시면, 그 안에 있는 CD에 들어 있습니다. 첨부 자료에 스테핑 모터 구동 소스 있습니다. 열심히 하세요. 감사합니다. >Atmega128을 이용해서 커튼을 제어할 수 있게 만들려고 합니다. >답변을 해주시는 분이 전에 전자상가에서 만났던 선배님이신지 잘 모르겠네요. >맞으시면 기억나실지도 모르겠는데요..^^ >모형으로 만들것이기 때문에 커튼이 별로 크진 않을 것 같습니다. >어떤 모터를 사용하는게 좋은지 가르쳐주시고 모터제어부의 회로도와 >소스예제도 보내주셨으면 합니다. >항상 행복하시고 즐거운 하루 보내세요~ >
103 답변완료한가지만 더 물어보도록 하겠습니다. 김광호 2006-04-25 6,968
오늘 구매해서 여러가지 실습해보는 중입니다..^^; 다름이 아니옵고.. 납땜은 잘되서 LED 둘다 깜빡이고 잘 작동이 되긴하는데요. ICC-AVR에서 메이크 프로젝트를 실행하면 켄낫 프로그램 플레쉬라고 에러가 자꾸 뜨네요.ㅠㅠ 내일아침까지 어떻게든 해서 실습한 모습을 보여야하는데 이런 어줍짢은 문제에 봉착하다니..ㅠㅠ 꼭 답부탁드립니다~
관리자 답변 N.T.C · 2006-04-25
안녕하세요? 저희 제품을 사용해 주셔서 늘 감사드립니다. ICC-AVR에서 cannot program flash라고 뜨면, 대부분 납땜이 어딘가 불안한 상태라서 그런 경우가 많구요. 땜을 얍실하게 냉납없이 잘 하시면 괜찮아 집니다. 하지만, 그렇게 오류나는 경우가 너무 잦아 지거나, 오래되면, CPU가 나가는 수가 있으므로, 주의하시기 바랍니다. 납땜을 다시 차분히 해 보세요.^--^ 일단, LED 깜빡인다고 하는 건 기존에 제가 구워놓은 프로그램이 도는 것으로 보이는 데, 혹시 지금 쓰시는 킷트가 라인트래이서 킷트나 Mega16 킷트라면 C711을 다시지 마시고, 제거해 주세요. 그럼 해결 될겁니다. 감사합니다.
102 답변완료키패드 제어문제 김광호 2006-04-24 7,728
안녕하세요~ 임베디드 소프트를 전공하는 학생입니다. 다름이 아니옵고.. 키패드 제어문제때문에 그런데요.. 각종 정보를 섭렵해 보았지만 만드는데 큰 어려움이 있네요.. 혹시 알려주실수는 없으신지? 강좌로 만드는것도 좋을꺼 같은데 말이죠..^^ 제가 구입한 키패드는 3*4키패드 이구요..매트릭스라구 적혀있네요..^^ 사용하려는 키트는 128kit이구요.. 사용방법을 좀 알려주셨으면 감사하겠습니다~. 그럼 좋은하루 되세요~
관리자 답변 N.T.C · 2006-04-24
안녕하세요? 키패드는 키스캔 방식을 사용하도록 보통 설계합니다. 올려둔 키 매트릭스는 참고로 올린 것이구요. COM0~COM3까지를 각각, 0111->1011->1101->1110으로 주면서 Key0~3까지의 값을 읽습니다. 각각 x10, x100, x1000, x10000 으로 값을 매기면서 모두 더하면, 고유의 키값이 됩니다. 미리 define 해 둔 키 값과 비교하여, 어떤 키인지 판별하는 알고리즘을 추천합니다. 수고하세요. 아래는 예전에 짯던 소스입니다. 참고하세요. 여기서, rPDATC는 PORTC라고 보시면 되구요. D0, D1, D2를 가지고, 74138로 COM0~COM3를 만들어 내구요. D4~D7을 가지고 Key0~Key3을 읽어 드리는 소스입니다. int Check_Key(void){ int i, j, k=0; for(i=0;i<6;i++){ Key_Select(i); Delay(1); j=Key_Read(); if(i*100+j != i*100+15){ k = i*100+j; } } Delay(5000); return(k); } void Key_Select(int k){ rPDATC = (rPDATC&0xff00)|k; } int Key_Read(void){ int i=0; i = (0x000F)&(rPDATC>>4); return(i); } >안녕하세요~ >임베디드 소프트를 전공하는 학생입니다. >다름이 아니옵고.. >키패드 제어문제때문에 그런데요.. >각종 정보를 섭렵해 보았지만 만드는데 큰 어려움이 있네요.. >혹시 알려주실수는 없으신지? >강좌로 만드는것도 좋을꺼 같은데 말이죠..^^ >제가 구입한 키패드는 3*4키패드 이구요..매트릭스라구 적혀있네요..^^ >사용하려는 키트는 128kit이구요.. >사용방법을 좀 알려주셨으면 감사하겠습니다~. >그럼 좋은하루 되세요~
101 답변완료as 받을려고 하는데요 유길상 2006-04-21 7,462
지금 128 보드를 사서 지금 테스트 보드 만드려교 핀을 빼고 그래서 테스터기에 있는 소리 나는 걸로 확인하고 있는데 1~테스터를 하는데 소리가 나네요 그래서 내가 선을 잘 못 연결 했나 해서 빼고 해서 하는데 그럴때는 소리가 안나요. 그래서 보드가 이상있나 그래서 일일이 하나 ㅎ데는데 소리가 나네요 이를 어떻게 해야 되는지요
관리자 답변 N.T.C · 2006-04-22
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 정말 감사드립니다. 그런데, 고객님의 요청 사항을 잘 이해하기 어렵습니다. 회사로 전화(02-704-4774) 주시면, 정성껏 상담해 드리겠습니다. 감사합니다.
100 답변완료A/S받으러 가고 싶습니다. 박상욱 2006-04-19 7,335
수고 하십니다. 구매한 제품중 128 모듈이 UART 2번째게 잘 작동이 안되서 확인 하고 싶습니다. 그리고 128 모듈도 구매하고 싶습니다. 언제 방문 하면 될까요. 항상 친절한 답변에 감사 드립니다.
관리자 답변 N.T.C · 2006-04-19
안녕하세요? 저희 뉴테크놀로지 제품을 구입해 주셔서 진심으로 감사드립니다. UART 두번째것이 잘 안되신다구요. 회사로 일단 이 메시지를 보시면 바로 전화를 주시기 바랍니다. 저랑 선약을 하시면, 만나실 수 있으며, A/S 해 드리구요. 모듈 구매를 하실 수 있습니다. 보통 오후 3~6시 경이면, 회사에서 저를 만나실 수 있구요. 반드시 전화를 미리 주시기 바랍니다. (TEL:02-704-4774) 감사합니다. >수고 하십니다. > >구매한 제품중 128 모듈이 UART 2번째게 잘 작동이 안되서 >확인 하고 싶습니다. > >그리고 128 모듈도 구매하고 싶습니다. > >언제 방문 하면 될까요. > >항상 친절한 답변에 감사 드립니다. >
99 답변완료avr 2개째 날려먹어서 찾아갔는데, 넘친절하게 잘해주시더라고용.. 송명성 2006-04-18 7,806
아호..왜케 mcu가 잘날라가는지, 벌써 두개째 날려먹었는데, 이참에 회사에 찾아가서 머가 문제인지 좀 배우러 갔었습니다. 조그마한 사무실에 사장님과 어떤분이 열씸히 토론을 하고 계시더군요. 바쁘신 와중에도 납땜하나하나 잘봐주시더라고요. 원래는 안 바쁜데, 오늘따라 바쁘시다면서도..친절하시더라고요.. 다음에 시간되면 또 찾아가서 배우고 싶더군요... P.S)사장님 사업번창하세용..
관리자 답변 N.T.C · 2006-04-19
안녕하세요? 송명성씨~ 이렇게 좋은 메시지 남겨 주셔서 감사드립니다. 회사에 좋은 이미지를 갖는 다는 것은 좋은 일이지요. 언제든 질문 있으시면, 주저 마시고 와서 질문해 주세요. 최선을 다해 답변해 드리고 도와드리겠습니다. 감사합니다. >아호..왜케 mcu가 잘날라가는지, 벌써 두개째 날려먹었는데, > >이참에 회사에 찾아가서 머가 문제인지 좀 배우러 갔었습니다. > >조그마한 사무실에 사장님과 어떤분이 열씸히 토론을 하고 계시더군요. > >바쁘신 와중에도 납땜하나하나 잘봐주시더라고요. > >원래는 안 바쁜데, 오늘따라 바쁘시다면서도..친절하시더라고요.. > >다음에 시간되면 또 찾아가서 배우고 싶더군요... > > > >P.S)사장님 사업번창하세용.. > >
98 답변완료AVR 노래 출력 소스 Zeple 2006-04-18 8,935
포트E를 통해서 비행기,학교종이땡땡땡,곰세마리 차례로 출력되는 소스입니다. 노래 악보도 첨부했습니다.
관리자 답변 박상욱 · 2006-04-22
추가적으로 필요한 부품이 무엇 인가요?
97 답변완료uart를 이용한 LCD에 문자 띄우기 김수형 2006-04-17 10,209
안녕하세요. 잘지내시는지요?? 며칠을 고민해도 답이 나오질 않아 답답한 마음에 이렇게 글을 올리게 되었습니다. 현재 GPS 모듈을 가지고 AVR128 uart포트를 이용하여 LCD에 문자를 띄울려고 합니다. 하이퍼터미널을 이용하여 gps모듈에서 아스키코드값이 튀어나오는것은 확인했구요 일단은, 수신신호를 모두 엘시디에 띄우는것보단, 인터럽트가 정상적으로 수행되는지 확인할려고 수신신호의 한문자 만을 띄우기 위해 AVR 2번 포트에 gps의 5V TTL 신호를 인가하여 LCD에 문자를 띄울려고 해도 도무질 답이 안나옵니다. 인터럽트를 걸어서 엘씨디에 띄울려고 AVR EDIT를 이용하여 아래와 같이 소스코드를 작성했지만,, LCD에는 검은 빈칸만 나옵니다. uart 레지스트리 설정값은 몇차례 확인했구요, 인터럽트 관련 소스코드가 잘못 쓰여 져서 인지, 아니면 추가로 첨부해야 할 코드가 있는지요?? 바쁘시겠지만, 한말씀 부탁드립니다. #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <stdio.h> #include <stdlib.h> // USART0 Receiver buffer volatile char rx_buffer; // USART0 Receiver interrupt service routine SIGNAL(SIG_UART0_RECV) { rx_buffer=UDR0; } //딜레이 함수 void delay_us(unsigned char time_us) /* time delay for us */ { register unsigned char i; for(i = 0; i < time_us; i++) // 4 cycle + { asm volatile(" PUSH R0 "); // 2 cycle + asm volatile(" POP R0 "); // 2 cycle + asm volatile(" PUSH R0 "); // 2 cycle + asm volatile(" POP R0 "); // 2 cycle + asm volatile(" PUSH R0 "); // 2 cycle + asm volatile(" POP R0 "); // 2 cycle = 16 cycle = 1 us for 16MHz } } //딜레이 함수 void delay_ms(unsigned int time_ms) /* time delay for ms */ { register unsigned int i; for(i = 0; i < time_ms; i++) { delay_us(250); delay_us(250); delay_us(250); delay_us(250); } } //lcd에 제어 코드를 출력하는 함수 void lcd_control(char c) { PORTA=0x04; //Enalbe signal for read/write lcd PORTF=c; delay_ms(1); PORTA=0x00; delay_us(50); } //lcd에 문자를 출력하는 함수 void lcd_display(char c) { PORTA=0x05; //(Rs)register select(1=data register, 0=instruction register) //Enalbe signal for read/write lcd PORTF=c; delay_ms(1); PORTA=0x01; //(Rs)Register select(1=data register, 0=instruction register) delay_us(50); } //lcd커서의 위치를 지정하는 함수 void lcd_position(unsigned char x, unsigned char y) { if(y>1)y=1; if(x>31)x=31; if(y==0)lcd_control(x + 0x80); else lcd_control(x + 0xC0); } //lcd 지정된 위치에 문자를 출력하는 함수 void lcd_display_char( char x, char y, unsigned char c) { lcd_position(x,y); lcd_display(c); } //lcd 지정된 위치에 문자열을 출력하는 함수 void lcd_display_string(char x, char y, char string[]) { lcd_position(x,y); while(*string)lcd_display(*string++); } //lcd SHIFT 함수 void lcd_shift_right(void){ PORTA=0x04; //Enalbe signal for read/write lcd PORTF=0x1C; //left=0x18 delay_ms(1); PORTA=0x00; delay_us(50); } void lcd_shift_left(void){ PORTA=0x04; //Enalbe signal for read/write lcd PORTF=0x18; delay_ms(1); PORTA=0x00; delay_us(50); } //lcd clear void lcd_clr(void){ PORTA=0x04; PORTF=0x01; delay_ms(1); PORTA=0x00; delay_ms(2); } //lcd 초기화 void lcd_init(void) { delay_ms(15); lcd_control(0x38); //lcd를 두 라인으로 사용 lcd_control(0x0C); //원래 0x0E lcd의 커서를 밑줄로 사용 , 0C 커서밑줄 안씀 lcd_control(0x02); //lcd에 커서를 홈으로 이동 lcd_control(0x01); //lcd에 디스플레이 되어 있는 문자를 지움 lcd_control(0x06); //entry mode (increment) delay_ms(2); } //avr128 포트 초기화 void port_init(void){ //PORTA => Output: Control the LCD (E,RW/RS) //PORTF => Output: Control the LCD (데이터버스) //PORTC => PC 0~3: output, PC 4~7: input (Keypad) // XMCRA = 0x00; XMCRB = 0x07; //use PC7-PC0 as I/O port DDRA = 0xff; // LCD E, Rw, Rs DDRF = 0xff; // LCD databus DDRC = 0x0f; // keypad PC0~3:출력 PC4~7:입력 PORTA= 0x00; PORTC= 0xff; PORTF= 0x00; } //uart 초기화 void uart_init(void){ DDRE = 0xfe; // PE1(TXD) 출력(1), PE0(RXD) 입력(0) UCSR0A=0x00; UCSR0B=0x90; // Receive enable //8번째비트 RXCIE0: 수신완료 인터럽트 개별적으로 허용 //5번째비트 RXEN0: USART0 포트의 수신부가 동작하도록 허용 UCSR0C=0x06; // 비동기 방식, No parity bit, 1 stop bit UBRR0H=0x00; UBRR0L=0x67; // 16MHz에서 9600 bps (10진수 103) (16진수 0x67) } int main(void) { port_init(); delay_ms(1); uart_init(); lcd_init(); sei(); while(1){ lcd_display_char(0,0,rx_buffer); //LCD의 0,0 위치에 rx_buffer 값을 출력한다. delay_ms(10); } }
관리자 답변 N.T.C · 2006-04-17
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다. 일단, 기본적으로 LCD를 컨트롤 하려면, 타이밍도를 잘 보고 프로그램을 짜야 하는 데, 타이밍 도를 정확하게 참조하지 않으신 것 같네요. 텍스트 LCD는 대략적으로 짜도 동작하지만, 거의 보시지 않은 것 같습니다. 딜레이를 주는 곳의 타이밍을 잘 보시기 바랍니다. 수고하시구요. 첨부한 파일을 참고하세요. 그럼, 수고하세요. >안녕하세요. > >잘지내시는지요?? > >며칠을 고민해도 답이 나오질 않아 답답한 마음에 이렇게 글을 올리게 되었습니다. > >현재 GPS 모듈을 가지고 AVR128 uart포트를 이용하여 LCD에 문자를 띄울려고 합니다. > >하이퍼터미널을 이용하여 gps모듈에서 아스키코드값이 튀어나오는것은 확인했구요 > >일단은, 수신신호를 모두 엘시디에 띄우는것보단, 인터럽트가 정상적으로 수행되는지 확인할려고 수신신호의 한문자 만을 띄우기 위해 > >AVR 2번 포트에 gps의 5V TTL 신호를 인가하여 LCD에 문자를 띄울려고 해도 > >도무질 답이 안나옵니다. > >인터럽트를 걸어서 엘씨디에 띄울려고 AVR EDIT를 이용하여 아래와 같이 소스코드를 작성했지만,, > >LCD에는 검은 빈칸만 나옵니다. > >uart 레지스트리 설정값은 몇차례 확인했구요, 인터럽트 관련 소스코드가 잘못 쓰여 > >져서 인지, 아니면 추가로 첨부해야 할 코드가 있는지요?? > >바쁘시겠지만, 한말씀 부탁드립니다. > > >#include <avr/io.h> >#include <avr/interrupt.h> >#include <string.h> >#include <stdio.h> >#include <stdlib.h> > >// USART0 Receiver buffer >volatile char rx_buffer; > >// USART0 Receiver interrupt service routine >SIGNAL(SIG_UART0_RECV) >{ > rx_buffer=UDR0; >} > > >//딜레이 함수 >void delay_us(unsigned char time_us) /* time delay for us */ >{ register unsigned char i; > > for(i = 0; i < time_us; i++) // 4 cycle + > { asm volatile(" PUSH R0 "); // 2 cycle + > asm volatile(" POP R0 "); // 2 cycle + > asm volatile(" PUSH R0 "); // 2 cycle + > asm volatile(" POP R0 "); // 2 cycle + > asm volatile(" PUSH R0 "); // 2 cycle + > asm volatile(" POP R0 "); // 2 cycle = 16 cycle = 1 us for 16MHz > } >} > >//딜레이 함수 >void delay_ms(unsigned int time_ms) /* time delay for ms */ >{ register unsigned int i; > > for(i = 0; i < time_ms; i++) > { delay_us(250); > delay_us(250); > delay_us(250); > delay_us(250); > } >} > >//lcd에 제어 코드를 출력하는 함수 >void lcd_control(char c) >{ > PORTA=0x04; //Enalbe signal for read/write lcd > PORTF=c; > delay_ms(1); > PORTA=0x00; > delay_us(50); >} > >//lcd에 문자를 출력하는 함수 >void lcd_display(char c) >{ > PORTA=0x05; //(Rs)register select(1=data register, 0=instruction register) > //Enalbe signal for read/write lcd > PORTF=c; > delay_ms(1); > PORTA=0x01; //(Rs)Register select(1=data register, 0=instruction register) > delay_us(50); >} > >//lcd커서의 위치를 지정하는 함수 >void lcd_position(unsigned char x, unsigned char y) >{ > if(y>1)y=1; > if(x>31)x=31; > if(y==0)lcd_control(x + 0x80); > else lcd_control(x + 0xC0); >} > >//lcd 지정된 위치에 문자를 출력하는 함수 >void lcd_display_char( char x, char y, unsigned char c) >{ > lcd_position(x,y); > lcd_display(c); >} > >//lcd 지정된 위치에 문자열을 출력하는 함수 >void lcd_display_string(char x, char y, char string[]) >{ > lcd_position(x,y); > while(*string)lcd_display(*string++); >} > >//lcd SHIFT 함수 >void lcd_shift_right(void){ > > PORTA=0x04; //Enalbe signal for read/write lcd > PORTF=0x1C; //left=0x18 > delay_ms(1); > PORTA=0x00; > delay_us(50); > } > >void lcd_shift_left(void){ > > PORTA=0x04; //Enalbe signal for read/write lcd > PORTF=0x18; > delay_ms(1); > PORTA=0x00; > delay_us(50); > } > > >//lcd clear >void lcd_clr(void){ > > PORTA=0x04; > PORTF=0x01; > delay_ms(1); > PORTA=0x00; > delay_ms(2); >} > >//lcd 초기화 >void lcd_init(void) >{ > delay_ms(15); > lcd_control(0x38); //lcd를 두 라인으로 사용 > lcd_control(0x0C); //원래 0x0E lcd의 커서를 밑줄로 사용 , 0C 커서밑줄 안씀 > lcd_control(0x02); //lcd에 커서를 홈으로 이동 > lcd_control(0x01); //lcd에 디스플레이 되어 있는 문자를 지움 > > lcd_control(0x06); //entry mode (increment) > delay_ms(2); >} > > >//avr128 포트 초기화 >void port_init(void){ > > //PORTA => Output: Control the LCD (E,RW/RS) > //PORTF => Output: Control the LCD (데이터버스) > //PORTC => PC 0~3: output, PC 4~7: input (Keypad) > // XMCRA = 0x00; > > > XMCRB = 0x07; //use PC7-PC0 as I/O port > > DDRA = 0xff; // LCD E, Rw, Rs > DDRF = 0xff; // LCD databus > DDRC = 0x0f; // keypad PC0~3:출력 PC4~7:입력 > > PORTA= 0x00; > PORTC= 0xff; > PORTF= 0x00; > > >} > >//uart 초기화 >void uart_init(void){ > > DDRE = 0xfe; // PE1(TXD) 출력(1), PE0(RXD) 입력(0) > > UCSR0A=0x00; > UCSR0B=0x90; // Receive enable //8번째비트 RXCIE0: 수신완료 인터럽트 개별적으로 허용 > //5번째비트 RXEN0: USART0 포트의 수신부가 동작하도록 허용 > UCSR0C=0x06; // 비동기 방식, No parity bit, 1 stop bit > > UBRR0H=0x00; > UBRR0L=0x67; // 16MHz에서 9600 bps (10진수 103) (16진수 0x67) >} > > > >int main(void) >{ > > port_init(); > delay_ms(1); > uart_init(); > lcd_init(); > > sei(); > > while(1){ > > lcd_display_char(0,0,rx_buffer); //LCD의 0,0 위치에 rx_buffer 값을 출력한다. > delay_ms(10); > > } > >} > >
96 답변완료달링톤 회로가 무엇을 해주는건가요? 박상욱 2006-04-13 9,180
밑에 ON/OFF는 릴레이로 해결 하였습니다. 그런데 달링톤 회로 없이 바로 하였습니다. 달링톤 회로를 추가 해야 하는 이유와 이점이 무엇인지 궁금 합니다. 항상 질문만 드려 죄송하고 자세한 답변 감사 드립니다.
관리자 답변 N.T.C · 2006-04-13
안녕하세요? 달링톤 회로는 전력 증폭기 역할을 하구요. 시간 관계상 인터넷에서 찾은 자료를 올립니다. naver 지식인 검색입니다. 흔히 emitter follower라는 회로입니다. 달리 표현하자면 common collector란 말도 사용하는데 특징은 전압증폭은 1이고 (즉 이득이 없음을 의미합니다) 이고 전류증폭은 HFE입니다. HFE 는 TR의 직류전류증폭률로서 TR마다 다소 차이가 있지만 대략 50~200정도 됩니다. 따라서 전류증폭만 50~100배 해주는 회로라고 할수 있죠. 가령 마이컴이나 OPAMP등과 같은 장치에서 나오는 출력이 전압은 충분하지만 전류가 모자라는 경우가 있습니다. 가령 OPAMP의 경우 전압은 ±15V 정도 지만 전류는 기껏 20~30mA정도 밖에 꺼집어 낼수 없죠. 이런 신호로 전류가 많이 흐르는 솔레노이드나 모터를 직접구동하기 힘들죠. 그럴때와 위와 같은 회로를 사용하는 것입니다.
95 답변완료UART 에대한 interrupt 예제는 없나요. 박상욱 2006-04-11 7,940
정말 많은 도움으로 제가 원하는 많은 기능이 구현 되어 정말 감사 합니다. 이제는 UART프로그램을 발전 시켜 RX릉 interrupt로 처리하고 싶은 욕심이 생김니다. UART 에대한 interrupt 예제는 없나요. 강좌에 보니 타임 인터럽트는 있는데 UART는 없네요. 그래서 예제를 가지고 해 보았는데 잘 안되네요. 도움을 부탁드립니다.
관리자 답변 박상욱 · 2006-04-12
ATMEL 싸이트에 예제가 있네요. 해결 하였습니다.
94 답변완료avr128을 이용한 키매트릭스 스캔 김민수 2006-04-11 9,619
안녕하세요. avr128을 가지고 공부하고 있는 학생입니다. 첨부한 회로도의 4 * 4 짜리 키패드를 avr128 포트 하나에 입력으로 받아 키를 스캔 받을려고 합니다. 몇일을 고민해도 답이 나오질 않아 이렇게 글을 올리게 되었습니다. C0 : portC 1 C1 : portC 2 ... L0: portC 4 ... L3: portC 7 이렇게 인터페이스 했습니다. L0부터 L3 까지 항상 5V 로 되어있는데요. 회로도에 이상이 있는건가요? 아니면 5V를 인가하지 않고 C0 부터 C3을 출력으로 설정하고 L0부터 L3 까지 입력으로 받아 키매트릭스를 구성해야 하는건가요? 바쁘시겠지만, 조언부탁드릴께요 ㅠㅠ 그럼, 좋은하루 보내세요.
관리자 답변 N.T.C · 2006-04-12
안녕하세요? 반갑습니다. 첨부하신 회로도를 보면 C0~C3까지를 입력으로 하고, L0~L3를 출력으로 해서 C0~C3를 0001, 0010, 0100, 1000 순서로 값을 주면서 L0~L3의 값을 읽어서 0001일때의 L0값을 일의 자리 0010일때의 L1값을 십의 자리 0100일때의 L2값을 백의 자리 1000일때의 L3값을 천의 자리 로 해서, 다 더해서 X라는 값을 만든 후, 그 X 값의 키값을 가지고 키의 번호를 판별하시면 될 것 같습니다. 참고로, 제가 자주 쓰는 회로를 첨부하였으니, 참고하시기 바랍니다. 언제든 질문 있으시면 남겨 주세요. 감사합니다. >안녕하세요. > >avr128을 가지고 공부하고 있는 학생입니다. > >첨부한 회로도의 4 * 4 짜리 키패드를 avr128 포트 하나에 입력으로 받아 > >키를 스캔 받을려고 합니다. > >몇일을 고민해도 답이 나오질 않아 이렇게 글을 올리게 되었습니다. > >C0 : portC 1 >C1 : portC 2 >... > >L0: portC 4 >... >L3: portC 7 > >이렇게 인터페이스 했습니다. > >L0부터 L3 까지 항상 5V 로 되어있는데요. > >회로도에 이상이 있는건가요? > >아니면 5V를 인가하지 않고 C0 부터 C3을 출력으로 설정하고 > >L0부터 L3 까지 입력으로 받아 키매트릭스를 구성해야 하는건가요? > >바쁘시겠지만, 조언부탁드릴께요 ㅠㅠ > >그럼, 좋은하루 보내세요. > >