Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 98 | 답변완료AVR 노래 출력 소스 | Zeple | 2006-04-18 | 8,935 |
|
포트E를 통해서 비행기,학교종이땡땡땡,곰세마리 차례로 출력되는 소스입니다.
노래 악보도 첨부했습니다.
관리자 답변
추가적으로 필요한 부품이 무엇 인가요?
|
||||
| 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);
}
}
관리자 답변
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다.
일단, 기본적으로 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는 릴레이로 해결 하였습니다.
그런데 달링톤 회로 없이 바로 하였습니다.
달링톤 회로를 추가 해야 하는 이유와
이점이 무엇인지 궁금 합니다.
항상 질문만 드려 죄송하고 자세한 답변
감사 드립니다.
관리자 답변
안녕하세요?
달링톤 회로는 전력 증폭기 역할을 하구요.
시간 관계상 인터넷에서 찾은 자료를 올립니다.
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는 없네요.
그래서 예제를 가지고 해 보았는데 잘 안되네요.
도움을 부탁드립니다.
관리자 답변
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 까지 입력으로 받아 키매트릭스를 구성해야 하는건가요?
바쁘시겠지만, 조언부탁드릴께요 ㅠㅠ
그럼, 좋은하루 보내세요.
관리자 답변
안녕하세요? 반갑습니다.
첨부하신 회로도를 보면 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 까지 입력으로 받아 키매트릭스를 구성해야 하는건가요?
>
>바쁘시겠지만, 조언부탁드릴께요 ㅠㅠ
>
>그럼, 좋은하루 보내세요.
>
>
|
||||
| 93 | 답변완료KR-DL16에 추가 업그레이드 가능? | 질문요 | 2006-04-11 | 8,212 |
|
죄송합니다 ^^;;
자꾸 이상한 질문만 하네요.
KR-DL16킷트에 업그레이드 가능 한가요?
전방 장애물이 있을시에 U턴해서 돌아가는 방식을
업그레이드 해 볼려구 하는데 가능할까요?
그냥 기판에 같은 재료넣고 해볼려고 하거든요.
추가적으로 센서를 더 달아서 mega16에 연결해서 모터제어도 해야할꺼 같고~
될까여?
관리자 답변
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다.
원하시는 기능은 충분히 구현 가능합니다.
우선 저희 DL16킷트에 스테핑 모터를 달아서 할 수 있도록 기구를 설계하여
판매하고 있구요. 스테핑 모터랑 스테핑 모터 제어보드도 판매하고 있습니다.
그리고, 원하시는 기능은 전방 장애물을 발견해야 하는 데, 보통 초음파 센서를
많이 씁니다. 초음파 센서로 시도해 보시기 바랍니다.
모터제어는 10을 주느냐 01을 주느냐에 따라서 전후진이 바뀌니까 그렇게 하시면 되구요. 저희 16보드와 같은 싸이즈의 빵보드도 판매중이니, 이용해 주시기 바랍니다.
감사합니다.
>죄송합니다 ^^;;
>자꾸 이상한 질문만 하네요.
>KR-DL16킷트에 업그레이드 가능 한가요?
>전방 장애물이 있을시에 U턴해서 돌아가는 방식을
>업그레이드 해 볼려구 하는데 가능할까요?
>그냥 기판에 같은 재료넣고 해볼려고 하거든요.
>추가적으로 센서를 더 달아서 mega16에 연결해서 모터제어도 해야할꺼 같고~
>될까여?
|
||||
| 92 | 답변완료🔒 안녕하세요..잘 지내셧습니까? | 동동구리 | 2006-04-11 | 4 |
|
🔒 비밀글입니다. 작성자 또는 관리자만 확인할 수 있습니다.
|
||||
| 91 | 답변완료ATmega16에 관한 질문요~ | 질문요 | 2006-04-11 | 6,687 |
|
요번에 반제품 라인트레이서를 샀는데요~
대부분 라인트레이서는 8051을 쓴다고 들었는데
보아하니 ATmega16을 쓰셨더라구여
그래서 궁금한게 있는데여~
ATmega16과 8051의 차이점을 알려주세~
이왕이면 아시는대로 부탁드립니다.
관리자 답변
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다.
너무 장황한 질문이라, 어디서 어디까지 답해야 할 지 잘 모르겠지만, 간단하게 답해 보겠습니다.
가장 큰 차이는 일단, AVR은 ISP라는 장치로 프로그램이 간단히 된다는 점입니다. 물론 8051계열도 S 계열로 새로 나오는 것들은 ISP로 프로그래밍이 가능하지만 말입니다.
또한, AVR의 월등한 램과 플래시롬 크기 차이를 들 수 있겠구요.
AVR은 실제로 최대 16 MIPS가 나오는 데 반해, 8051은 분주해서 사용하므로 속도가 느립니다.
감사합니다.
|
||||
| 90 | 답변완료접접을 ON/OFF하려면 어떻게 해야 할까요. | 박상욱 | 2006-04-10 | 7,888 |
|
ADC를 쓴 방법으로 제가 원하는 결과은 성공 하였습니다.
다시 한번 감사 드립니다.
ATMega I/O PORT로 HI또는 LO를 주는 방법은 알게는데
어떤 회로을 이용 해야 스위치를 ON/OFF 하면 좋을 까요 ?
관리자 답변
안녕하세요?
질문하신 내용이 무슨 말인지 이해 못하겠습니다.
다시 한 번 좀 더 자세히 질문해 주세요.
감사합니다.
|
||||
| 89 | 답변완료avr컴파일러사용및 예제에대해실행안돼요. | 조진호 | 2006-04-10 | 9,008 |
|
귀사의 제품중 AVR JTAGICE보드 와 atmega128 RDK보드(녹색기판)를 구매하여
마이컴에 입문하려 합니다.
홈페이지에서 컴파일러와 AVR STDIO6.3 구한거를 받아 설치했습니다.
컴파일러 사용중 MEGA.C 라는 예제 파일을 홈페이지에서 받아서 첨부하여
F9 했는데, 에러가 나네요. 참고로. 메뉴얼에 나온 소스와 실제 소스와 다른것 같은데요. 메뉴얼에 화일에 보이는 MAIN()부분의 소스가 내용이 다르네요.
해결법이먼지 궁금해요. 아님 방문할까요
아래는 에러메시지입니다.(캡처화면도보낼께요)
C:\icc\bin\imakew -f 스타트하자.mak
iccavr -o 스타트하자 -LC:\icc\lib\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -fihx_coff -S2 @스타트하자.lk
!E C:\icc\lib\crtAVR.o(41): Code address 0 already contains a value
!E C:\icc\lib\crtAVR.o(41): Code address 0x1 already contains a value
C:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1
관리자 답변
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다.
방문해 주시면, 컴파일러 사용법을 알려 드릴 수 있습니다. 단, 방문하시기 전에 회사(02-704-4774)로 전화 주셔서, 시간 약속을 부탁드립니다.
그리고, 올려주신 소스의 프로젝트 이름을 한글로 하시면 문제가 생기구요.
프로젝트 이름을 영어로 하셔서 해보세요.
그리고, 안되시면, Project->Option 에서 Device Configuration을 ATmega128로
하셨는 지 확인해 보시기 바랍니다.
감사합니다.
>귀사의 제품중 AVR JTAGICE보드 와 atmega128 RDK보드(녹색기판)를 구매하여
>마이컴에 입문하려 합니다.
>홈페이지에서 컴파일러와 AVR STDIO6.3 구한거를 받아 설치했습니다.
>
>컴파일러 사용중 MEGA.C 라는 예제 파일을 홈페이지에서 받아서 첨부하여
>F9 했는데, 에러가 나네요. 참고로. 메뉴얼에 나온 소스와 실제 소스와 다른것 같은데요. 메뉴얼에 화일에 보이는 MAIN()부분의 소스가 내용이 다르네요.
>해결법이먼지 궁금해요. 아님 방문할까요
>아래는 에러메시지입니다.(캡처화면도보낼께요)
>
>C:\icc\bin\imakew -f 스타트하자.mak
> iccavr -o 스타트하자 -LC:\icc\lib\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -fihx_coff -S2 @스타트하자.lk
>!E C:\icc\lib\crtAVR.o(41): Code address 0 already contains a value
>!E C:\icc\lib\crtAVR.o(41): Code address 0x1 already contains a value
>C:\icc\bin\imakew.exe: Error code 1
>Done: there are error(s). Exit code: 1
|
||||
| 88 | 답변완료AVR JTAG보드를 구입했는데.. | 허성현 | 2006-04-10 | 8,211 |
|
PC의 컴포트에 연장케이블을 연결해놓고 사용하는데 꽂으려고 보니..
이게 숫놈이네요. 적잖이 황당하네요. 이걸 굳이 숫놈으로 해야 할이유가 뭔가요?
이 커넥터를 암놈으로 하고 기판내에서 크로스로 연결하면 굳이 다른 부가적인
장치없이 연결할텐데요.매뉴얼보니 2번이 rx 3번이 tx 라고 되어있는데요.
그렇다면 이 숫놈을 제거하고 암놈으로 바꿔달면 PC의 시리얼포트에 직결해도
된다는 건가요?
그리고 중간에 ISP 커넥터(J3)가 있는 거 같은데요. 핀배치 알려주세요.
그뒤에 2핀짜리는(J2) 뭔가요?
이 보드의 회로도 공개해주셔도 별 문제없죠?
관리자 답변
안녕하세요? 저희 뉴테크놀로지 제품을 이용해 주셔서 감사드립니다.
이번에 처음 버전(녹색 PCB JTAGICE)은 DB-9 시리얼 포트가 암놈으로 되어 있었구요. 다시 개발한 JTAGICE(파란 PCB JTAGICE 의 경우)의 경우, 사가신 분들이
숫놈을 원하시는 분들이 많아서 숫놈으로 다시 변경한 것입니다.
보통, 크로스 케이블은 모니터링 때문에 케이블을 가지고 계신 분들이 많아서,
여러분들 얘기로는 크로스 케이블을 사용하시고자 하셨다고 합니다.
암놈으로 된 JTAGICE를 원하신다면, 저희 회사로 방문해 주시면,
암놈으로 된 JTAGICE로 교체해 드리겠습니다. rx, tx가 바뀌어야 하기 때문에
커넥터만 제거하면 시리얼 포트로 직렬하면 되지 않습니다.
원하시는 사양과 조금 달라서 첨엔 좀 불편하시겠지만, 크로스 케이블 연결해서 쓰시면 이상 없이 사용이 가능하시구요. 암놈으로 된 JTAGICE를 원하시면 언제든지 방문해 주세요.
ISP 커넥터는 JTAG용 JTAGICE에 달려 있는 mega16에 프로그램을 구워 넣을 때 쓰는 것이구요. 커넥터 핀배치는 저희 AD-ISP 또는 AD-ISPPRO와 배열이 같습니다. 그 뒤에 있는 2핀(J2)는 업데이트 할 때 사용하는 리셋 연결용인데요.
사용하지 않아도 관계없이 업데이트가 잘 되므로, 사용안하셔도 됩니다.
AVR Studio가 업데이트 되면서, 간혹 JTAGICE를 업데이트해서 쓰셔야 하는 경우가 있기 때문에 필요한 기능입니다.
죄송하지만, JTAGICE의 회로도는 특별한 것도 없긴 하지만, 비공개를 원칙으로 하고 있습니다. 굳이 필요하신 분은 회사로 찾아 오셔서 상담해 주시기 바랍니다.
감사합니다.
>PC의 컴포트에 연장케이블을 연결해놓고 사용하는데 꽂으려고 보니..
>이게 숫놈이네요. 적잖이 황당하네요. 이걸 굳이 숫놈으로 해야 할이유가 뭔가요?
>이 커넥터를 암놈으로 하고 기판내에서 크로스로 연결하면 굳이 다른 부가적인
>장치없이 연결할텐데요.매뉴얼보니 2번이 rx 3번이 tx 라고 되어있는데요.
>그렇다면 이 숫놈을 제거하고 암놈으로 바꿔달면 PC의 시리얼포트에 직결해도
>된다는 건가요?
>그리고 중간에 ISP 커넥터(J3)가 있는 거 같은데요. 핀배치 알려주세요.
>그뒤에 2핀짜리는(J2) 뭔가요?
>이 보드의 회로도 공개해주셔도 별 문제없죠?
|
||||
| 87 | 답변완료4월엔 교육일정이 어떻게 되나요? | 허성현 | 2006-04-10 | 7,911 |
|
지난달에 늦어서 신청을 못했는데요.
4월엔 일정이 어떻게 되는지요? 없는 건가요?
관리자 답변
저도 강좌받고싶습니다. 일정좀알려주세요.
|
||||
| 86 | 답변완료avr128 pro 모듈의 uart port 사용관련 | 김수형 | 2006-04-10 | 8,140 |
|
안녕하세요.
avr128 pro 모듈을 사용하고 있는 학생입니다.
현재 pro 모듈에 보면 2개의 rs-232 port(J203, J204)가 있습니다.
메뉴얼을 보니 위 2개의 커넥터로 입출력 되는 신호는 TTL lever (5v)이 아닌
RS-232 level(+-12V)신호라고 적혀있습니다.
현재 TTL level의 신호를 AVR128에 인가해야 하는 상황입니다.
TTL level의 신호를 새로운 max232 칩을 사용하여 rs-232 신호로 바꾸어
J203 포트에 인가해야 하나요?
아니면,
pro보드상 max232a와 avr128칩의 2번핀(RXD0)이 연결되어 있는데
TTL level 신호를 직접 avr128 칩의 2번핀(RXD0)으로 직접 연결해도
괜찮은지요? 혹, AVR128칩과 pro보드상에 있는 max232a의 연결을 끊고
직접 avr128칩 2번핀으로 TTL level 신호를 인가해야하는지요 ?
조언 부탁드립니다.
관리자 답변
안녕하세요? 저희 뉴테크놀로지 컴패니 제품을 이용해 주셔서 감사드립니다.
말씀하신 대로 프로 모듈에는 이미 MAX232가 달려 있어서, UART 2개가 PC level로 나와 있습니다. 하지만, 마이컴끼리 직접 통신을 원한다거나, GPS 등과 직접 통신하고자 할 때에는 말씀하신 대로, TTL Level을 직접 인가해야 합니다.
이럴 경우, 그냥 첨부한 그림과 같이 핀에서 빼서 사용하시면 됩니다.
따로 PCB를 끊지 않으셔도 사용이 가능합니다.
감사합니다.
>안녕하세요.
>
>avr128 pro 모듈을 사용하고 있는 학생입니다.
>
>현재 pro 모듈에 보면 2개의 rs-232 port(J203, J204)가 있습니다.
>
>메뉴얼을 보니 위 2개의 커넥터로 입출력 되는 신호는 TTL lever (5v)이 아닌
>
>RS-232 level(+-12V)신호라고 적혀있습니다.
>
>현재 TTL level의 신호를 AVR128에 인가해야 하는 상황입니다.
>
>TTL level의 신호를 새로운 max232 칩을 사용하여 rs-232 신호로 바꾸어
>
>J203 포트에 인가해야 하나요?
>
>아니면,
>
>pro보드상 max232a와 avr128칩의 2번핀(RXD0)이 연결되어 있는데
>
>TTL level 신호를 직접 avr128 칩의 2번핀(RXD0)으로 직접 연결해도
>
>괜찮은지요? 혹, AVR128칩과 pro보드상에 있는 max232a의 연결을 끊고
>
>직접 avr128칩 2번핀으로 TTL level 신호를 인가해야하는지요 ?
>
>조언 부탁드립니다.
>
>
>
|
||||
| 85 | 답변완료[중간고사 대체] 프로젝트 3실습 리포트 | N.T.C | 2006-04-09 | 8,137 |
|
ARM에 관하여 조사하시오. 특히, AT91SAM7S64에 대해 집중적으로 조사하고,
실질적인 사용법을 초보자의 입장에서 기술하고, 사용되는 컴파일러와
개발 환경 구축에 관하여 서술, 공부할 때 어떻게 할 것인지에 관한
계획서도 함께 제출하세요. 전체 점수의 30%를 차지합니다.
열심히 해주세요. 10장~20장으로 하면 되고, 예전에 그냥 과제 내라고 했더니,
50장 넘게 한 사람도 있었고, 최대 120장 해온 사람도 있었습니다.
리포트를 남한테 돈주고 맡겨서 하는 사람도 있더군요. 그런 짓은 하지 마시고,
성심껏 내시면 됩니다. 리포트는 4월 28일 수업시간에 제출하시면 됩니다.
화이팅!
관리자 답변
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 [email protected] 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
|
||||
| 84 | 답변완료전압측청 | 박상욱 | 2006-04-07 | 8,097 |
|
항상 도움을 주셔서 감사 합니다.
초보라서 또 질문 드립니다.
ATMega128에서 ADC를 이용하여 5V인지 12V 사이에 전압을
변동치를 측정 할수 있나요.
그럼 수고 하세요.
관리자 답변
안녕하세요? 박상욱씨~
저희 뉴테크놀로지 컴패니 제품을 이용해 주셔서 감사드립니다. ATMega128에서 ADC를 이용하면, 보통 3.3V~5V를 기준 전압으로 해서 많이 사용하는 데요. 만약 12V 라면 Voltage devider를 사용하시면 최대 아날로그 전압을 5V로 다운시키실 수 있을 거구요 그걸 사용해서, 입력을 받으시면 간다하게 하실 수 있습니다. 저항으로 이한 신호의 열화 등을 방지하고자 여러가지 고려해서 만들면 좋겠지만 그렇게 하지 않아도 전압 변동치를 쉽게 측정이 가능합니다.
언제라도 질문 있으시면 남겨주세요. 저희 뉴테크놀로지 컴패니는 이렇게 열심히 질문하시는 분들에게 늘 환영하고 있습니다. 감사합니다.
|
||||
