Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 5663 | 답변완료질문이요 | 송명선 | 2010-09-03 | 1,414 |
|
현재 학교에서 RFID를 이용하여 졸작을 작업하고 있는데
코드비젼에서 같은 소스로 ab-m128-b와 am-128pro를 사용하고 있습니다.
ab-m128-b에서는 max232칩이 없어서 rs232케이블에 max232칩이 부착된걸 사용하여 원하는 결과값을 얻었는데 am-128pro에서는 max232칩이 있어서 rs232케이블만 구매하여 사용을 하였더니
결과값이 달랐습니다.
작동원리는 rfid리더기를 uart1에 연결하고 pc에는 uart0에 연결하여 38400bps로 동일화 시켰고 데이터비트는 8bit, parity는 없고 정지비트를 1로 설정하였습니다.
저희가 원하는 결과값은 ascii가 4바이트씩 전송이 되서 pc로 출력이 되는데 ab-m128-b에서는 제대로 나오는 반면 am-128pro에서는 1바이트씩 밀려서 나온다는 결과를 얻었습니다.
저희쪽의 실수일수도 있어서 am-128pro를 하나더 구매하여 실험을 해봐도 이전과 같은 결과가 나오는데 어떤 문제때문에 그런지 답변좀 바랍니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
그런 것으로 한바이트씩 밀린 다는 것은 있을 수 없습니다.
뭔가 다른 이유가 있을 것으로 생각됩니다.
128PL과 128PRO와의 차이는 단순히 max232의 사용 유무인데, 달라질 것이 없습니다.
다른 이유를 찾아 보시는 것이 좋겠습니다.
같은 소스로 그렇게 된다는 것은....참으로 이상한 일입니다.
본사 회로에 특별히 다른 것은 없습니다.
수고하세요.
>현재 학교에서 RFID를 이용하여 졸작을 작업하고 있는데
>코드비젼에서 같은 소스로 ab-m128-b와 am-128pro를 사용하고 있습니다.
>ab-m128-b에서는 max232칩이 없어서 rs232케이블에 max232칩이 부착된걸 사용하여 원하는 결과값을 얻었는데 am-128pro에서는 max232칩이 있어서 rs232케이블만 구매하여 사용을 하였더니
>결과값이 달랐습니다.
>
>작동원리는 rfid리더기를 uart1에 연결하고 pc에는 uart0에 연결하여 38400bps로 동일화 시켰고 데이터비트는 8bit, parity는 없고 정지비트를 1로 설정하였습니다.
>저희가 원하는 결과값은 ascii가 4바이트씩 전송이 되서 pc로 출력이 되는데 ab-m128-b에서는 제대로 나오는 반면 am-128pro에서는 1바이트씩 밀려서 나온다는 결과를 얻었습니다.
>
>저희쪽의 실수일수도 있어서 am-128pro를 하나더 구매하여 실험을 해봐도 이전과 같은 결과가 나오는데 어떤 문제때문에 그런지 답변좀 바랍니다.
|
||||
| 5662 | 답변완료코드비전에서 약간 개작하는 법이 없나요? | 전인종 | 2010-09-03 | 1,335 |
|
안녕하세요?
AD-USP-ISP로 ATMEGA168P를 사용하려는데요 ATMEGA128프로그램밖에 없더라구요
약간 고쳐서 다른 이름으로 사용하려는데 어렵네요.. 사용프로그램은 코드비전이고요
다른 DIR로 복사하여 개작하려는데 잘안되더라구요.. 하는방법좀 가르처 주시면 고맙겠습니다....
관리자 답변
안녕하세요
본사에서 판매되는 킷트들의 예제입니다.
다른 디바이스로 수정하여 드리지는 않습니다.
두 디바이스의 헤더를 에서 공용으로사용하는 레지스터와 아니 레지스터와
구분하여 고쳐야합니다.
컴파일러별 UART 강좌가 아래에 있는 데, 참고가 좀 되지 않을까 싶습니다.
자료실->기존자료실에서 코드비전 이나 codevision 으로 검색하면 각각 예제들이 좀 나올 건데요. 128용이긴 하지만, 참고가 될 것 같네요.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=mega128_lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=101
수고하세요
> 안녕하세요?
>AD-USP-ISP로 ATMEGA168P를 사용하려는데요 ATMEGA128프로그램밖에 없더라구요
>약간 고쳐서 다른 이름으로 사용하려는데 어렵네요.. 사용프로그램은 코드비전이고요
>다른 DIR로 복사하여 개작하려는데 잘안되더라구요.. 하는방법좀 가르처 주시면 고맙겠습니다....
|
||||
| 5661 | 답변완료AT91SAM7S64 키트를 이용해 인터럽트를 테스트 했는데요... | 이성윤 | 2010-09-03 | 1,355 |
|
AT91SAM7S64키트(SM-SAM7S64-A)를 구입해서 공부중입니다.
인터럽트를 테스트 해봐았는데요
키트에 보면 LED 는 PA2라고 써있고, BUTTON에는 PA31로 적혀있더군요.
그래서 버턴을 누르면 LED가 꺼졌다 켜졌다 하게 하려고 다음과 같이 프로그램 했는데,
버턴이 전혀 않먹습니다.
PA30버턴도 사용해 봤는데 마찬가지입니다.
LED는 테스트 해보니 이상없었습니다.
그리고,또한가지는 이상하게 FRMWARE를 심고나서 돌려보면
한 30초 정도 지나면 보드가 재부팅 됩니다.
(MAIN 시작부분에 깜박이게 하는 코트를 넣어 놓았는데, 30 초 지나면 다시 깜박입니다.)
아무리 봐도 소스에는 문제가 없는거 같은데,,
소스 검토를 부탁드립니다.
#include "board.h"
#define LED AT91C_PIO_PA2
#define BUTTON AT91C_PIO_PA31
void delay(long i)
{
int j ;
while(i--)
{
j=5;
while(j--) ;
};
}
main()
{
unsigned int i,j ;
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
//
AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,LED) ;
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
//시작할때 깜박이게
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
delay(100) ;
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
delay(100) ;
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
delay(100) ;
//버턴을 INPUT으로 설정
AT91F_PIO_CfgInput(AT91C_BASE_PIOA, BUTTON ) ;
// AT91F_PIO_CfgPullup(AT91C_BASE_PIOA, BUTTON) ;
while(1)
{
i=AT91F_PIO_GetInput(AT91C_BASE_PIOA)& BUTTON ;
if(i==0)
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
else
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
delay(100) ;
}
}
관리자 답변
안녕하세요
어떤 컴파일러를 사용하는지 모르겠지만
iar 컴파일 경우 안에 at91sam7sxx 관련예제가 다들어있습니다.
거기서 참고 하는것이 좋습니다.
소스를 확인해 드리지는 않습니다.
초기화루팅을 전부 셋팅하시길 바랍니다.
수고하세요
>AT91SAM7S64키트(SM-SAM7S64-A)를 구입해서 공부중입니다.
>
>인터럽트를 테스트 해봐았는데요
>키트에 보면 LED 는 PA2라고 써있고, BUTTON에는 PA31로 적혀있더군요.
>그래서 버턴을 누르면 LED가 꺼졌다 켜졌다 하게 하려고 다음과 같이 프로그램 했는데,
>버턴이 전혀 않먹습니다.
>PA30버턴도 사용해 봤는데 마찬가지입니다.
>LED는 테스트 해보니 이상없었습니다.
>
>그리고,또한가지는 이상하게 FRMWARE를 심고나서 돌려보면
>한 30초 정도 지나면 보드가 재부팅 됩니다.
>(MAIN 시작부분에 깜박이게 하는 코트를 넣어 놓았는데, 30 초 지나면 다시 깜박입니다.)
>아무리 봐도 소스에는 문제가 없는거 같은데,,
>
>소스 검토를 부탁드립니다.
>
>
>
>#include "board.h"
>#define LED AT91C_PIO_PA2
>#define BUTTON AT91C_PIO_PA31
>
>void delay(long i)
>{
> int j ;
> while(i--)
> {
> j=5;
> while(j--) ;
> };
>}
>
>main()
>{
> unsigned int i,j ;
> AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
>
>//
> AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,LED) ;
> AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
>
> //시작할때 깜박이게
> AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
> delay(100) ;
> AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
> delay(100) ;
> AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
> delay(100) ;
>
> //버턴을 INPUT으로 설정
> AT91F_PIO_CfgInput(AT91C_BASE_PIOA, BUTTON ) ;
> // AT91F_PIO_CfgPullup(AT91C_BASE_PIOA, BUTTON) ;
> while(1)
> {
> i=AT91F_PIO_GetInput(AT91C_BASE_PIOA)& BUTTON ;
> if(i==0)
> AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED) ;
> else
> AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED) ;
> delay(100) ;
> }
>}
|
||||
| 5660 | 답변완료AT91SAM7S256 제품문의 | 김석호 | 2010-09-02 | 1,306 |
|
안녕하십니까.
다름이 아니오라 암키트 에뮬레이터 H-JTAG (USB)또는 JeLink V8(USB) 등 사용가능한가요.
그리고 판매중인 주변 입출력 모듈사용이 가능 하지요.
관리자 답변
안녕하세요
h-jtag은 사용가능합니다.
JeLink V8(USB) ?? 구입하려는 곳에 문의 하시는것이 빠른듯합니다.
타겟 디바이스를 지원하는지를 확인하시고 사용하세요
판매하는 입출력 모듈을 사용이 가능합니다.
수고하세요
>안녕하십니까.
>
>다름이 아니오라 암키트 에뮬레이터 H-JTAG (USB)또는 JeLink V8(USB) 등 사용가능한가요.
>그리고 판매중인 주변 입출력 모듈사용이 가능 하지요.
|
||||
| 5659 | 답변완료AD-USBISP V03 드라이버 설치문의 | 임제민 | 2010-09-02 | 1,275 |
|
AD-USBISP V03 드라이버 설치하고 재부팅 해도 계속 설치 오류가 나네요.
사진은 이름순으로 보시면 됩니다. 상황을 설명하기 어려워 첨부해서 올립니다.
관리자 답변
안녕하세요? 고객님,
혹시, 윈도우 버전이 어떻게 되시나요?
XP인데 그런 경우라면, 자료실에서 USBISP V03 문제발생시 드라이버를 깔아 보세요.
안되시면, 다시 남겨 주시기 바랍니다.
감사합니다.
> AD-USBISP V03 드라이버 설치하고 재부팅 해도 계속 설치 오류가 나네요.
>
> 사진은 이름순으로 보시면 됩니다. 상황을 설명하기 어려워 첨부해서 올립니다.
|
||||
| 5658 | 답변완료AB-M128Pro-A로 시리얼lcd420 두개를 동시에 구동할 수 있나요? | 김선혜 | 2010-09-02 | 1,342 |
|
제가 예전에 AVR MEGA 128 개발보드 AB-M128Pro-A를 샀는데요.
tlcd-am-p의 예제 소스로 연습을 했었어요.
그런데 이제 좀 더 큰 lcd가 필요해서
여기 제품 시리얼lcd 420을 사려고 하는데요.
이건 포트에 연결하는게 아니라 uart로 연결하는 것 같더라구요.
제가 산 보드로 이 lcd두 개를 동시에 연결해서 구동시킬 수 있는지 답변 부탁드립니다.
그리고 tlcd-am-p와 마찬가지로 예제 소스를 그대로 사용해서 연습해볼 수 있는지도
알려주시면 감사하겠습니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
우선, 128은 시리얼 포트가 두개라서 UART 두군데로 사용이 가능합니다.
따라서, 시리얼 LCD 두개를 쓰셔도 무방합니다.
다만, 프로그램을 짤 때, 두 군데로 모두 송신을 하는 것이 중요한데요.
자료실의 SLCD용 예제를 다운로드 받으시구요.
거기서, UART0만 초기화 되어 있을 겁니다.
UART1도 초기화 해 주세요.
- 초기화 루틴 -
//UART1 initialize
// desired baud rate:9600
// actual baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart1_init(void)
{
UCSR1B = 0x00; //disable while setting baud rate
UCSR1A = 0x00;
UCSR1C = 0x06;
UBRR1L = 0x67; //set baud rate lo
UBRR1H = 0x00; //set baud rate hi
UCSR1B = 0x18;
}
그리고는, init_devices() 함수에서
uart1_init();를 uart0_init(); 뒤에 추가해 주세요.
그렇게 하면 초기화가 될 겁니다.
그리고는, printf의 각 내장함수인 putchar 함수를 변경하여
출력 방향을 필요에 따라서, UART0나 UART1쪽으로 돌려야 합니다.
따라서, 전역변수로 int direction=0; 이렇게 선언하세요.
그런 다음에 다음의 putchar 함수를 기존 예제의 putchar 함수 대신 넣으시구요.
// printf 함수 사용시 추가할 것.
int putchar(char c)
{
if(direction == 0){
while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
}else{
while (((UCSR1A>>UDRE1)&0x01) == 0) ; // UDRE, data register empty
UDR1 = c;
}
return c;
}
그렇게 하신 후에,
main의 while문 안에서 printf 로 사용하실 때에,
UART 방향을 변경할 때마다 direction 값을 0 또는 1로 변경한 후에 printf를 쓰면 됩니다.
아래와 같이요.
direction = 0;
printf(" Test......UART0");
direction = 1;
printf(" Test......UART1");
수고하세요.
>제가 예전에 AVR MEGA 128 개발보드 AB-M128Pro-A를 샀는데요.
>
>tlcd-am-p의 예제 소스로 연습을 했었어요.
>
>그런데 이제 좀 더 큰 lcd가 필요해서
>
>여기 제품 시리얼lcd 420을 사려고 하는데요.
>
>이건 포트에 연결하는게 아니라 uart로 연결하는 것 같더라구요.
>
>제가 산 보드로 이 lcd두 개를 동시에 연결해서 구동시킬 수 있는지 답변 부탁드립니다.
>
>그리고 tlcd-am-p와 마찬가지로 예제 소스를 그대로 사용해서 연습해볼 수 있는지도
>
>알려주시면 감사하겠습니다.
>
|
||||
| 5657 | 답변완료코드비전에서 atmega816을 프로그램하는방법 | 전인종 | 2010-09-02 | 1,374 |
|
안녕하세요?
보통 ATMERGAS128을 사용하는 법만 나와 있느데요 코트비전을 이용하여 atmega816을 프로그램하는방법은 알수가 없네요.
INCLUDE하는 화일이름, AD_ISP_CNB를 사용하는데요 WRITING하는 방법을 모릅니다. 좀 가르쳐 주시면 합니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
AD-ISPPRO나 AD-USBISP와 같은 ISP 장비를 사용하셔서, 타겟 보드에 연결한 후에 사용하셔야 하구요. 사용법이 ATMEGA128과 같지만, Target Device 선택하는 부분에서 사용하시려는 device를 선택하는 부분만 차이가 있습니다. 나머지는 똑 같습니다.
가지고 계신 것이 AD-ISP-CVB라면 이것은 단순히 커넥터 변환보드입니다.
ISPPRO나 USBISP를 구매하여 사용하셔야 합니다.
수고하세요.
>안녕하세요?
>보통 ATMERGAS128을 사용하는 법만 나와 있느데요 코트비전을 이용하여 atmega816을 프로그램하는방법은 알수가 없네요.
> INCLUDE하는 화일이름, AD_ISP_CNB를 사용하는데요 WRITING하는 방법을 모릅니다. 좀 가르쳐 주시면 합니다.
|
||||
| 5656 | 답변완료ISP와 USART 동시 사용 | 강준 | 2010-09-02 | 1,222 |
|
안녕하세요.
귀사의 ATmega128 보드와 USB ISP 사용자입니다.
현재
두개의 USB ISP를
하나는 ISP용으로
하나는 USART용으로 보드에 꽂아 동시에 사용 중입니다.
물론 하나의 PC에 두개의 USB를 연결하였습니다.
이 경우에 뭔가 오작동을 하더군요.
예를 들어,
가속센서를 ADC 채널에 연결하여 사용하는 경우 쓰레기값이 들어온다던지,
초음파센서를 PORTD에 연결하여 사용하는 경우 제대로 작동하지 않는다던지...
그 이유와 해결 방법에 대한 조언 좀 부탁드리겠습니다.
감사합니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
우선, 다운로딩 시에 ATMEGA128 자체가 시리얼 포트와 ISP를 위한 SPI 라인을 공용으로 사용하는 관계로 다운로딩 시에 쓰레기 값이 들어오게 됩니다.
초음파 센서를 PORTD의 D0나 D1에 물려서 쓰시나 봅니다. SPI 라인하고 물립니다.
SPI 다운로딩 시에 문제가 생길 가능성이 있습니다. D2나 D3 쪽에 옮겨서 사용하세요.
다운로드시에 데이터 입력으로 클럭 변화가 생기게 되는 데 이러한 것들이 초음파 센서 회로상의 커패시터 효과 때문에, 제대로 변화가 들어올 수 없게 되서, 다운로딩에 문제가 생깁니다.
핀을 옮기면 이상 없을 듯 싶습니다. 다운로드 한 이후에는 문제가 없어야 정상입니다.
본사의 USBISP나 USBSerail 등의 문제가 아니구요. AVR 자체가 멀티핀을 사용하기 때문에 생기는 현상입니다. 참고하여 사용하시기 바랍니다.
보다 많은 현상들도 있는 데, 이는 FAQ에 128 설계시 유의점에 관한 글이 있으니, 참고 바랍니다.
http://newtc.co.kr/board/view.php?id=faq&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=29
수고하세요.
>안녕하세요.
>귀사의 ATmega128 보드와 USB ISP 사용자입니다.
>
>현재
>두개의 USB ISP를
>하나는 ISP용으로
>하나는 USART용으로 보드에 꽂아 동시에 사용 중입니다.
>물론 하나의 PC에 두개의 USB를 연결하였습니다.
>
>이 경우에 뭔가 오작동을 하더군요.
>예를 들어,
>가속센서를 ADC 채널에 연결하여 사용하는 경우 쓰레기값이 들어온다던지,
>초음파센서를 PORTD에 연결하여 사용하는 경우 제대로 작동하지 않는다던지...
>
>그 이유와 해결 방법에 대한 조언 좀 부탁드리겠습니다.
>감사합니다.
>
>
|
||||
| 5655 | 답변완료블루투스 통신에 관한 질문입니다 | 박성민 | 2010-09-01 | 1,458 |
|
안녕하세요
옴니아 ------->>> 블루투스모듈[ fb155bc ] --------->>> atmega128 [ ntc pro 완제품키트]
이러한 방식으로 옴니아로부터 ~ atmega128 까지 데이터를 보내려합니다
현재 블루투스모듈( 이하fb155bc ) 과 atmega128의 연결은 아래와 같이 하였습니다
*****************************************************************
fb155bc의 rx ---------------------------- atmega128 tx [TTL level 5v ]
fb155bc의 tx -------- 저항 한개 ---------- atmega128 rx [TTL level 5v ]
fb155bc의 GND ---------------------------- atmega128 GND [TTL level 5v ]
fb155bc 의 (3번:status핀)에 저항과 LED 연결해두었습니다
(↑연결하면 LED가 깜빡거리는데 아마 fb155bc가 수신대기인 상태를 뜻하는것 같습니다)
fb155bc는 3.3v를 (2번:VCC핀)에 연결하였습니다..
*****************************************************************
PC에 연결된 옴니아로 포트오픈후
unsigned char형으로 숫자 1을 보내면 fb155bc를 거쳐 atmega128에 연결된 LED1개를 ON시키려고 합니다
그래서, 위 계획한데로 실행을 하면 아래와 같은 현상이 발생합니다,
옴니아에서 fb155bc로 숫자 "1" 데이터를 보내면 fb155bc 의 status 3번에 달아둔 LED의 깜빡임이 멈추면서 꺼지는데,,
이 현상은 fb155bc가 옴니아로부터 데이터를 수신했다는 것이 맞는지요?.
혹시 수신했다면, LED가 켜져야하는네 왜 안켜지는 것일까요?
제가 무엇을 잘못하고있는지, 확인해야할 부분이 있는지, 있다면 무엇인지 궁금합니다?
(이 실험을 하기전에 블루투스통신은 연결은 무선이되, 방식은 시리얼통신과 같다고 하여
atmega128 uart0 3개 핀 (PC 12v Level인 tx, rx, gnd)과 rs-232 9핀 중 뽑은 몇개의 선으로 연결후 하이퍼터미널을 이용한 시리얼 통신은 미리 해보았습니다.)
제가하는 실험이 계속 진전이 없어 이렇게 글을 올려봅니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
우선, 옴니아에서 128로 보내기 전에 우선,
옴니아 -> PC 하이퍼 터미널로 시리얼 연결하여 데이터가 잘 출력되는 지 확인하는 것이 더 중요합니다. 어떤 데이터가 출력되는 지 확인한 그 이후에, 옴니아( 블루투스 ) <----> 블루투스 --> PC 하이퍼 터미널 순으로 하여 그 데이터가 똑같이 출력되는 지 확인하고, 그런 후에, PC 쪽에 ATMEGA128을 달아서, 테스트 하는 게 순서라고 봅니다.
일단, 데이터의 안정적인 입출력을 확인 한 후에, 해야 한다는 얘기입니다.
깜빡이는 것은 대기 였던 것 같은데, 자세한 것은 블루투스 모듈 제조사 메뉴얼을 참고하시기 바랍니다. 너무 오래된 얘기라서, 기억하기 어렵습니다.
우선, 그 불루투스 모듈 관련된 인터페이스 회로도와 소스코드가 아래에 가면 있으니,
참고 바랍니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=qna&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=블루투스&select_arrange=headnum&desc=asc&no=1398
그리고, 블루투스 관련 부분은 제조사에 문의하여야 합니다.
본사 제품이 아니라서 써포트 하지 않습니다.
수고하세요.
>
>안녕하세요
>
>옴니아 ------->>> 블루투스모듈[ fb155bc ] --------->>> atmega128 [ ntc pro 완제품키트]
>
>이러한 방식으로 옴니아로부터 ~ atmega128 까지 데이터를 보내려합니다
>
>현재 블루투스모듈( 이하fb155bc ) 과 atmega128의 연결은 아래와 같이 하였습니다
>
>*****************************************************************
>fb155bc의 rx ---------------------------- atmega128 tx [TTL level 5v ]
>fb155bc의 tx -------- 저항 한개 ---------- atmega128 rx [TTL level 5v ]
>fb155bc의 GND ---------------------------- atmega128 GND [TTL level 5v ]
>
>fb155bc 의 (3번:status핀)에 저항과 LED 연결해두었습니다
>(↑연결하면 LED가 깜빡거리는데 아마 fb155bc가 수신대기인 상태를 뜻하는것 같습니다)
>
>fb155bc는 3.3v를 (2번:VCC핀)에 연결하였습니다..
>*****************************************************************
>
>PC에 연결된 옴니아로 포트오픈후
>unsigned char형으로 숫자 1을 보내면 fb155bc를 거쳐 atmega128에 연결된 LED1개를 ON시키려고 합니다
>
>그래서, 위 계획한데로 실행을 하면 아래와 같은 현상이 발생합니다,
>
>옴니아에서 fb155bc로 숫자 "1" 데이터를 보내면 fb155bc 의 status 3번에 달아둔 LED의 깜빡임이 멈추면서 꺼지는데,,
>
>이 현상은 fb155bc가 옴니아로부터 데이터를 수신했다는 것이 맞는지요?.
>
>혹시 수신했다면, LED가 켜져야하는네 왜 안켜지는 것일까요?
>제가 무엇을 잘못하고있는지, 확인해야할 부분이 있는지, 있다면 무엇인지 궁금합니다?
>
>(이 실험을 하기전에 블루투스통신은 연결은 무선이되, 방식은 시리얼통신과 같다고 하여
> atmega128 uart0 3개 핀 (PC 12v Level인 tx, rx, gnd)과 rs-232 9핀 중 뽑은 몇개의 선으로 연결후 하이퍼터미널을 이용한 시리얼 통신은 미리 해보았습니다.)
>
>제가하는 실험이 계속 진전이 없어 이렇게 글을 올려봅니다.
>
>
>
|
||||
| 5654 | 답변완료uart 연결 질문입니다. | 박성민 | 2010-09-01 | 1,242 |
|
뉴티시 AVR128프로 완제품 키트 를 사용중입니다.
UART0 / UART1 이렇게 나누어져있는데
각각 핀3개 (PC12V레벨), 핀4개(TTL 5V정도레벨)로 나누어져있습니다
여기서 UART0 3핀으로 PC의 하이퍼터미널을 이용하여 시리얼통신은 가능합니다
UART0 4핀으로는 PC의 하이퍼터미널로 시리얼통신을 하면 화면에 쓰레기값이 뜨는데
왜 3핀으로 시리얼통신했을때와 다른지 궁금합니다.
ATmega128모듈 뒤에 자체적으로 MAX232칩이 연결되어 있는것을 확인하였습니다.
이때문에 TTL레벨인 4핀에서도 역시 통신이 가능해야한건 아닌지요?
제가 저전압 ttl레벨을 통한 실험을 하고있어서 그런데,
혹시 4핀으로도 3핀으로했던 시리얼통신과 동일하게 하려면 어떻게 하면될까요
조언부탁드리겠습니다.
관리자 답변
안녕하세요? 고객님,
반갑습니다.
우선, AM-128PRO 모듈의 3핀 커넥터는 RS-232C level(+-12V level) 이구요.
4핀 커넥터는 TTL Level(5V level) 입니다.
즉, ATMEGA128에서 직접 나오는 선은 메인보드의 4핀 커넥터에 연결되어 있구요.
MAX232를 거쳐서 나오는 것은 RS-232C 출력으로 3핀 커넥터입니다.
그래서, 3핀 커넥터를 거치는 것은 제대로 된 시리얼 통신이 PC 와 바로 물렸을 때 가능하고, 4핀 커넥터는 PC와 직접은 안되는 겁니다.
PC는 RS-232C level을 사용하거든요. 레벨이 서로 맞아야 통신이 가능합니다.
만약 4핀 쪽으로 굳이 하시려면, 거기다가 본사의 AD-USBSERIAL 모듈을 붙이시면 가능합니다.
수고하세요.
>뉴티시 AVR128프로 완제품 키트 를 사용중입니다.
>
>UART0 / UART1 이렇게 나누어져있는데
>
>각각 핀3개 (PC12V레벨), 핀4개(TTL 5V정도레벨)로 나누어져있습니다
>
>여기서 UART0 3핀으로 PC의 하이퍼터미널을 이용하여 시리얼통신은 가능합니다
>
>UART0 4핀으로는 PC의 하이퍼터미널로 시리얼통신을 하면 화면에 쓰레기값이 뜨는데
>
>왜 3핀으로 시리얼통신했을때와 다른지 궁금합니다.
>
>ATmega128모듈 뒤에 자체적으로 MAX232칩이 연결되어 있는것을 확인하였습니다.
>
>이때문에 TTL레벨인 4핀에서도 역시 통신이 가능해야한건 아닌지요?
>
>제가 저전압 ttl레벨을 통한 실험을 하고있어서 그런데,
>
>혹시 4핀으로도 3핀으로했던 시리얼통신과 동일하게 하려면 어떻게 하면될까요
>
>조언부탁드리겠습니다.
|
||||
| 5653 | 답변완료AM-ACCTB 판매 | 강병권 | 2010-09-01 | 1,236 |
|
AM-ACCTB 만 따로 판매 안하나요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
가능합니다.
따로 사시면, 8,800원입니다. 다만 본사에서만 판매 가능합니다.
감사합니다.
>AM-ACCTB 만 따로 판매 안하나요?
|
||||
| 5652 | 답변완료IAR 데모 버전을 사용하고 싶습니다! | 최동민 | 2010-08-31 | 1,407 |
|
검색을 하다가.. IAR을 한번 사용해보고 싶어서요.
데모 라이센스키를 얻기위해서 어제 저녁에 메일을 보냈었는데요.
24시간내로 받을수 있다고 하여 기다리고 있었는데...안와서요..
음.. 확인이 될지 안될지는 모르겠지만.
현재 그럼 사용할 수 있는 방법은 없는지요?
궁금합니다.
관리자 답변
글쓴이입니다..방금전에 www.iar.com 에 가서 등록절차에 따르니까..
이메일로 라이센스키가 오네요.. 다른분들도 그렇게 사용하시길^^
|
||||
| 5651 | 답변완료usbisp vol.3 어제 디바이스 마트에서 구입했는데요 | 정재훈 | 2010-08-31 | 1,280 |
|
보드와 jtag 핀배열을 일치시키지 않고 작동시켰더니 열이 한번 나더니 작동을 안하네요
현재 상태는 전원불이 들어오고 깜박이는 led가 작동하고요... 그런데 codevision이나 avrstudio에서 인식하지 못하는 상태입니다.
물론 제 잘못일 수 있지만, 사자마자 이렇게 되어서 제대로 작동하는지의 여부조차 확인할 수 없었습니다. a/s가 가능한지의 여부를 여쭤보고 싶네요
관리자 답변
안녕하세요
a/s 관련링크입니다
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=5
ISP선관 jtag 핀은 틀립니다.
USBISP 사용하시려면 ISP 에 연결시켜야 합니다.
사용하시는 보드도 본사제품이시면 ISP 와 같이 보내어 점검받아보시길 바랍니다.
둘중 어떤 것이 망가져는지 알 수 없습니다.
수고하세요
>보드와 jtag 핀배열을 일치시키지 않고 작동시켰더니 열이 한번 나더니 작동을 안하네요
>현재 상태는 전원불이 들어오고 깜박이는 led가 작동하고요... 그런데 codevision이나 avrstudio에서 인식하지 못하는 상태입니다.
>물론 제 잘못일 수 있지만, 사자마자 이렇게 되어서 제대로 작동하는지의 여부조차 확인할 수 없었습니다. a/s가 가능한지의 여부를 여쭤보고 싶네요
|
||||
| 5650 | 답변완료AD-USBISP-L 드라이버 설치문제 | 김아람 | 2010-08-31 | 1,378 |
|
기존 동일 제품을 사용중에 제품 파손이 발생하여 새 제품을 구매하였음.
피씨 연결 시 새 제품으로 인식하고 드라이버 설치 프로세스가 진행됨.
드라이버가 제대로 설치 되지 않아 하드웨어 관리자 목록에 느낌표 마크가 뜸.
드라이버 제거 후 홈페이지에서 다운 받은 파일로 재 설치 후 동일 증상 발생.
==================================================================
왜 그럴까요?
관리자 답변
안녕하세요
사용하시는 OS win xp ? win7 32bit ? win7 64bit
에 따라 설치하는 방법이 틀립니다.
질문을 하실때는 사용하시는 개발환경을 적어서 질문을 해 주시길 바랍니다.
윈도우7 64bit 용입니다.
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=41
윈도우7 32bit 용입니다.
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=34
윈도우 XP 용입니다.
http://www.newtc.co.kr/download/AD-USBISP/AD-USBISP_V03_XP2K.zip
위링크를 참조하세요
드라이버를 깔고 재부팅을 해보시길 바랍니다.
수고하세요
>
>
> 기존 동일 제품을 사용중에 제품 파손이 발생하여 새 제품을 구매하였음.
>
> 피씨 연결 시 새 제품으로 인식하고 드라이버 설치 프로세스가 진행됨.
>
> 드라이버가 제대로 설치 되지 않아 하드웨어 관리자 목록에 느낌표 마크가 뜸.
>
> 드라이버 제거 후 홈페이지에서 다운 받은 파일로 재 설치 후 동일 증상 발생.
>
>==================================================================
>
> 왜 그럴까요?
|
||||
| 5649 | 답변완료2축 gyro 센서 질문이요.. | 김한범 | 2010-08-30 | 1,352 |
|
지난번에 문의를 드려서
소스파일을 받았는데요
소스파일 중에 밑에 헤더파일때문에 에러가 나는데요...
어떻게 해야 하나요?? 소프트웨어는 AVR Studio4를 사용하고 있습니다.
#include <iom128v.h>
#include <macros.h>
#include <stdio.h>
#define SCALE_FACTOR 1.611328125
#define TIME 0.01
#define OFF_SET 458
//590.5611
int value = 0;
float value_sum = 0;
float offset;
float angular_acceleration[50];
float angular_average = 0;
float before_angle = 0;
float after_angle = 0;
float angle_factor = 0;
char adc_flag = 0;
char time_flag = 0;
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x03;
}
//TIMER0 initialize - prescale:64
// WGM: Normal
// desired value: 1KHz
// actual value: 1.000KHz (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT0 = 0x06; //set count
OCR0 = 0xFA;
TCCR0 = 0x04; //start timer
}
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
TCNT0 = 0x06; //reload counter value
PORTG ^= 1;
ADCSRA |= 0x40;
}
//TIMER1 initialize - prescale:8
// WGM: 0) Normal, TOP=0xFFFF
// desired value: 100Hz
// actual value: 100.000Hz (0.0%)
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xB1; //setup
TCNT1L = 0xE0;
OCR1AH = 0x4E;
OCR1AL = 0x20;
OCR1BH = 0x4E;
OCR1BL = 0x20;
OCR1CH = 0x4E;
OCR1CL = 0x20;
ICR1H = 0x4E;
ICR1L = 0x20;
TCCR1A = 0x00;
//TCCR1B = 0x02; //start Timer
}
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
//TIMER1 has overflowed
TCNT1H = 0xB1; //reload counter high value
TCNT1L = 0xE0; //reload counter low value
//PORTG ^= 2;
time_flag = 1;
}
//UART0 initialize
// desired baud rate: 115200
// actual: baud rate:111111 (3.7%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x08; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}
// printf ?
int putchar(char c)
{
while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
return c;
}
// scanf
int getchar(void)
{
while ((UCSR0A & 0x80) == 0);
return UDR0;
}
//ADC initialize
// Conversion time: 104uS
void adc_init(void)
{
ADCSRA = 0x00; //disable adc
ADMUX = 0x00; //select adc input 0
ACSR = 0x80;
ADCSRA = 0x8F;
}
#pragma interrupt_handler adc_isr:iv_ADC
void adc_isr( void )
{
//conversion complete, read value (int) using...
value = ADCL; //Read 8 low bits first (important)
value |= ( int )ADCH << 8; //read 2 high bits and shift into top byte
adc_flag++;
value_sum += value;
if(adc_flag >=1 )
TCCR0 = 0x00; //stop
//printf( "\\r\\n ADC = %d", value );
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
uart0_init();
adc_init();
timer0_init();
timer1_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x01; //timer interrupt sources
TIMSK = 0x04; //timer interrupt sources
TIMSK = 0x05; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void delay ( unsigned int cnt )
{
unsigned int i,j;
for( i=0 ; i< cnt ; i++ )
for( j=0 ; j< 1000 ; j++ );
}
void main (void)
{
int i;
int temp;
init_devices();
printf( "\\r\\n GYRO..QQ");
printf( "\\r\\n ADCSRA = 0x%x", ADCSRA );
printf( "\\r\\n ADMUX = 0x%x", ADMUX );
printf( "\\r\\n ACSR = 0x%x", ACSR );
delay( 1000 );
for( i=0 ; i<100 ; i ++ )
angular_acceleration[i] = 0;
ADMUX = 0x00;
ADCSRA |= 0x40;
offset = 0;
for( i=0 ; i<50 ; )
{
if ( adc_flag )
{
temp = value;
offset += value;
adc_flag = 0;
ADCSRA |= 0x40;
//printf( "\\r\\n $$ = %d", value );
i ++ ;
}
}
offset = (int)(offset / 50);
printf( "\\r\\n offset = %f", offset );
//for( i=0 ; i<50 ; i ++ )
// angular_acceleration[i] = offset;
delay( 2000 );
delay( 2000 );
TCCR1B = 0x02; //start Timer
TCCR0 = 0x05; //start timer
value_sum = 0;
adc_flag = 0;
while(1)
{
//delay( 1000 );
if( time_flag )
{
PORTG |= 0x02;
value_sum = value_sum / adc_flag;
angular_acceleration[0] = (( float )( (int)(value_sum) - offset )) * SCALE_FACTOR;
after_angle = before_angle + ( angular_acceleration[9] + angular_acceleration[8] + angular_acceleration[7] + angular_acceleration[6] + angular_acceleration[5] + angular_acceleration[4] + angular_acceleration[3] + angular_acceleration[2] + angular_acceleration[1] + angular_acceleration[0] ) / 10;
angle_factor = after_angle * TIME;
before_angle = after_angle;
for( i=0 ; i<9 ; i ++ )
{
angular_acceleration[i+1] = angular_acceleration[i];
//printf ( " nangle = %.2f", angular_acceleration[i]);
}
printf ( "\\r\\n X_angle = %.2f", angle_factor);
angular_average = 0;
adc_flag = 0;
value_sum = 0;
time_flag = 0;
TCCR0 = 0x05;
}
PORTG &= 0xfd;
}
}
관리자 답변
안녕하세요
제공되는 코드는 ICCAVR 용 입니다.
winavr 용으로 작성된 코드는 없습니다.
유저가 사용하는 컴파일별로 수정해서 다시 배포하지는 않습니다.
헤더나 printf 함수 부분을 수정해서 사용하셔야 합니다.
수고하세요
>지난번에 문의를 드려서
>
>소스파일을 받았는데요
>
>소스파일 중에 밑에 헤더파일때문에 에러가 나는데요...
>
>어떻게 해야 하나요?? 소프트웨어는 AVR Studio4를 사용하고 있습니다.
>
>#include <iom128v.h>
>#include <macros.h>
>#include <stdio.h>
>
>#define SCALE_FACTOR 1.611328125
>#define TIME 0.01
>#define OFF_SET 458
>//590.5611
>
> int value = 0;
> float value_sum = 0;
> float offset;
> float angular_acceleration[50];
> float angular_average = 0;
> float before_angle = 0;
> float after_angle = 0;
> float angle_factor = 0;
> char adc_flag = 0;
> char time_flag = 0;
>
>void port_init(void)
>{
> PORTA = 0x00;
> DDRA = 0x00;
> PORTB = 0x00;
> DDRB = 0x00;
> PORTC = 0x00; //m103 output only
> DDRC = 0x00;
> PORTD = 0x00;
> DDRD = 0x00;
> PORTE = 0x00;
> DDRE = 0x00;
> PORTF = 0x00;
> DDRF = 0x00;
> PORTG = 0x00;
> DDRG = 0x03;
>}
>
>//TIMER0 initialize - prescale:64
>// WGM: Normal
>// desired value: 1KHz
>// actual value: 1.000KHz (0.0%)
>void timer0_init(void)
>{
> TCCR0 = 0x00; //stop
> ASSR = 0x00; //set async mode
> TCNT0 = 0x06; //set count
> OCR0 = 0xFA;
> TCCR0 = 0x04; //start timer
>}
>
>#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
>void timer0_ovf_isr(void)
>{
> TCNT0 = 0x06; //reload counter value
> PORTG ^= 1;
> ADCSRA |= 0x40;
>}
>//TIMER1 initialize - prescale:8
>// WGM: 0) Normal, TOP=0xFFFF
>// desired value: 100Hz
>// actual value: 100.000Hz (0.0%)
>void timer1_init(void)
>{
> TCCR1B = 0x00; //stop
> TCNT1H = 0xB1; //setup
> TCNT1L = 0xE0;
> OCR1AH = 0x4E;
> OCR1AL = 0x20;
> OCR1BH = 0x4E;
> OCR1BL = 0x20;
> OCR1CH = 0x4E;
> OCR1CL = 0x20;
> ICR1H = 0x4E;
> ICR1L = 0x20;
> TCCR1A = 0x00;
> //TCCR1B = 0x02; //start Timer
>}
>
>#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
>void timer1_ovf_isr(void)
>{
>//TIMER1 has overflowed
> TCNT1H = 0xB1; //reload counter high value
> TCNT1L = 0xE0; //reload counter low value
>
> //PORTG ^= 2;
>
> time_flag = 1;
>}
>
>//UART0 initialize
>// desired baud rate: 115200
>// actual: baud rate:111111 (3.7%)
>// char size: 8 bit
>// parity: Disabled
>void uart0_init(void)
>{
> UCSR0B = 0x00; //disable while setting baud rate
> UCSR0A = 0x00;
> UCSR0C = 0x06;
> UBRR0L = 0x08; //set baud rate lo
> UBRR0H = 0x00; //set baud rate hi
> UCSR0B = 0x18;
>}
>
>// printf ?
>int putchar(char c)
>{
> while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty
>
> UDR0 = c;
> return c;
>}
>
>// scanf
>int getchar(void)
>{
> while ((UCSR0A & 0x80) == 0);
> return UDR0;
>}
>
>//ADC initialize
>// Conversion time: 104uS
>void adc_init(void)
>{
> ADCSRA = 0x00; //disable adc
> ADMUX = 0x00; //select adc input 0
> ACSR = 0x80;
> ADCSRA = 0x8F;
>}
>
>#pragma interrupt_handler adc_isr:iv_ADC
>void adc_isr( void )
>{
>//conversion complete, read value (int) using...
> value = ADCL; //Read 8 low bits first (important)
> value |= ( int )ADCH << 8; //read 2 high bits and shift into top byte
>
> adc_flag++;
> value_sum += value;
>
> if(adc_flag >=1 )
> TCCR0 = 0x00; //stop
> //printf( "\\r\\n ADC = %d", value );
>}
>
>
>//call this routine to initialize all peripherals
>void init_devices(void)
>{
>//stop errant interrupts until set up
> CLI(); //disable all interrupts
> XDIV = 0x00; //xtal divider
> XMCRA = 0x00; //external memory
> port_init();
> uart0_init();
> adc_init();
> timer0_init();
> timer1_init();
>
>
> MCUCR = 0x00;
> EICRA = 0x00; //extended ext ints
> EICRB = 0x00; //extended ext ints
> EIMSK = 0x00;
> TIMSK = 0x01; //timer interrupt sources
> TIMSK = 0x04; //timer interrupt sources
> TIMSK = 0x05; //timer interrupt sources
> ETIMSK = 0x00; //extended timer interrupt sources
> SEI(); //re-enable interrupts
>//all peripherals are now initialized
>}
>
>void delay ( unsigned int cnt )
>{
> unsigned int i,j;
>
> for( i=0 ; i< cnt ; i++ )
> for( j=0 ; j< 1000 ; j++ );
>}
>
>void main (void)
>{
> int i;
> int temp;
> init_devices();
>
> printf( "\\r\\n GYRO..QQ");
> printf( "\\r\\n ADCSRA = 0x%x", ADCSRA );
> printf( "\\r\\n ADMUX = 0x%x", ADMUX );
> printf( "\\r\\n ACSR = 0x%x", ACSR );
>
> delay( 1000 );
>
> for( i=0 ; i<100 ; i ++ )
> angular_acceleration[i] = 0;
> ADMUX = 0x00;
>
>
> ADCSRA |= 0x40;
> offset = 0;
> for( i=0 ; i<50 ; )
> {
> if ( adc_flag )
> {
> temp = value;
> offset += value;
> adc_flag = 0;
> ADCSRA |= 0x40;
> //printf( "\\r\\n $$ = %d", value );
>
> i ++ ;
> }
> }
> offset = (int)(offset / 50);
>
> printf( "\\r\\n offset = %f", offset );
>
> //for( i=0 ; i<50 ; i ++ )
> // angular_acceleration[i] = offset;
>
> delay( 2000 );
> delay( 2000 );
>
> TCCR1B = 0x02; //start Timer
> TCCR0 = 0x05; //start timer
> value_sum = 0;
> adc_flag = 0;
> while(1)
> {
> //delay( 1000 );
>
> if( time_flag )
> {
>
> PORTG |= 0x02;
>
> value_sum = value_sum / adc_flag;
> angular_acceleration[0] = (( float )( (int)(value_sum) - offset )) * SCALE_FACTOR;
> after_angle = before_angle + ( angular_acceleration[9] + angular_acceleration[8] + angular_acceleration[7] + angular_acceleration[6] + angular_acceleration[5] + angular_acceleration[4] + angular_acceleration[3] + angular_acceleration[2] + angular_acceleration[1] + angular_acceleration[0] ) / 10;
>
> angle_factor = after_angle * TIME;
> before_angle = after_angle;
> for( i=0 ; i<9 ; i ++ )
> {
> angular_acceleration[i+1] = angular_acceleration[i];
> //printf ( " nangle = %.2f", angular_acceleration[i]);
> }
>
>
> printf ( "\\r\\n X_angle = %.2f", angle_factor);
> angular_average = 0;
> adc_flag = 0;
> value_sum = 0;
> time_flag = 0;
> TCCR0 = 0x05;
>
> }
> PORTG &= 0xfd;
> }
>}
>
|
||||
