Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 6443 | 답변완료AM-128PL의 배터리 연결에 관하여 질문드립니다. | 이학경 | 2011-06-27 | 1,354 |
|
귀하의 제품을 사용하고있는 대학생입니다.
다름이 아니라 AM-128PL의 배터리 공급에 문제가 생겨서 문의드립니다.
AM-128PL뿐만아니라 이것과 관련되어있는 개발보드도 2개가 있는데 모두 같은 증상입니다.
지금 현재 칩셋에 LCD와 RFMOD GPS를 결합하여 실험하고있는데 야외 테스트겸 9v사각 배터리를 연결하였습니다. (안정적으로 전원을 공급해줄수있는 시중에파는 케이블)
그런데 처음에는 LCD에 불이 밝게 들어오는데 한 10~20초지나면서부터 서서히 약해지는것입니다.
배터리가 급속도로 달고있는 모습이보여 배터리를 분리시켰다가 다시 켜보면 또 같은증상이 반복됩니다.
지금 제가가진 귀사의 칩2개와 개발보드 2개가 모두 같은 증상입니다.
사각배터리는 다른회사제품으로 여러개 테스트했는데 모두 같은증상이 발생합니다.
왜 안정적으로 전원이 공급되지 않는건가요? LCD전압이 세서 그런가요?
제생각에는 개발보드는 9v사용해도되고 칩자체는 5v만 넣어야 될것같은데 그러면 5v전지는 어떻게 구하나요?,,, 6v건전지는 너무크던데..
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
AM-128PL 모듈의 경우 5V를 사용합니다.
즉, 5V를 입력해 주어야 합니다. 상용 밧데리로 정확한 5V를 구하긴 어렵습니다.
9V 정도를 만든 후, 본사의 MP533 모듈을 사용하면 5V로 변환할 수 있고, 그 5V를 AM-128PL 모듈에 넣어주면 됩니다.
다만, 건전지의 경우 전류가 50mA~130mA 정도 흘러 나오는 데, 순간 전류량이나 여러가지 면에서 전류가 딸릴 수가 있습니다. 따라서, 동작에 문제가 되는 것입니다.
LCD나 모터 등은 전류를 많이 소모하는 부품이므로, 그럴 수 있습니다.
충전지를 사용하면 좀 낫습니다. 아니면, 가벼워야 한다면 폴리머 전지를 사용하세요.
참고하시기 바랍니다.
수고하세요.
>귀하의 제품을 사용하고있는 대학생입니다.
>
>다름이 아니라 AM-128PL의 배터리 공급에 문제가 생겨서 문의드립니다.
>AM-128PL뿐만아니라 이것과 관련되어있는 개발보드도 2개가 있는데 모두 같은 증상입니다.
>
>지금 현재 칩셋에 LCD와 RFMOD GPS를 결합하여 실험하고있는데 야외 테스트겸 9v사각 배터리를 연결하였습니다. (안정적으로 전원을 공급해줄수있는 시중에파는 케이블)
>
>그런데 처음에는 LCD에 불이 밝게 들어오는데 한 10~20초지나면서부터 서서히 약해지는것입니다.
>배터리가 급속도로 달고있는 모습이보여 배터리를 분리시켰다가 다시 켜보면 또 같은증상이 반복됩니다.
>지금 제가가진 귀사의 칩2개와 개발보드 2개가 모두 같은 증상입니다.
>
>사각배터리는 다른회사제품으로 여러개 테스트했는데 모두 같은증상이 발생합니다.
>
>왜 안정적으로 전원이 공급되지 않는건가요? LCD전압이 세서 그런가요?
>
>제생각에는 개발보드는 9v사용해도되고 칩자체는 5v만 넣어야 될것같은데 그러면 5v전지는 어떻게 구하나요?,,, 6v건전지는 너무크던데..
|
||||
| 6442 | 답변완료avr studio 5.. | 한민우 | 2011-06-26 | 1,367 |
|
안녕하세요
뉴티시 다운로더 isp를 잘쓰고있습니다..
다름아니라
avr studio5 가 정식버젼 출심됨에 따라서
테스트를 해보고있는데요..
avr studio5에서 뉴티씨에서 제공하는 isp를 어떻게 써야할지를 모르겠습니다..
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다만,
AVR Studio5에서는 STK500 프로토콜을 현재 지원하지 않아서, 4.xx 버전에서만 사용 가능합니다.
결국 STK500 프로토콜도 지원하지 않겠는가 하는 게 저희 의견입니다만, ATMEL의 방침이라 알 수 없습니다. 확실한 것은 현재는 지원이 되지 않는 다는 것입니다.
앞으로 지켜봐야 하지만, 그렇게 될 경우 본사에서도 차기 버전을 고려하고 있습니다.
감사합니다.
>안녕하세요
>
>뉴티시 다운로더 isp를 잘쓰고있습니다..
>
>다름아니라
>
>avr studio5 가 정식버젼 출심됨에 따라서
>
>테스트를 해보고있는데요..
>
>avr studio5에서 뉴티씨에서 제공하는 isp를 어떻게 써야할지를 모르겠습니다..
>
>
|
||||
| 6441 | 답변완료AM-DC1-3D 와 DC모터간 정회전 역회전 제어 질문입니다! | 김재균 | 2011-06-24 | 1,439 |
|
안녕하십니까! 강원대학교 삼척캠퍼스 자동차공학과 4학년에 재학중인 학생입니다.
지금 학교에서 설계프로젝트 진행중에 저희가 자동차문 손잡이 아이디어를 내고 지금 제작 과정중에 있습니다.
아이디어 내용을 말씀드리면 자동차 문 손잡이가 들어가는 동작으로, 평소에는 완전히 감춰진 상태 로있다가 운전자가 필요시에만 나오게 됩니다.
그리고 여기에서 손잡이가 나오고 들어가는것을 저희가 제작하여 만들고 있는 과정인데 손잡이를 밀어주고 당겨주는것을 DC모터를 이용해서 찾는 중에 AM-DC1-3D 키트를 이용해서 제어를 할려고 합니다.
원래를 컴퓨터를 이용하여 소스를 짜고 키트와 통신을 해야 되는데, 저희는 모터 정,역회전 구현만 할 수 있으면 되는 정도라서 스위치를 이용할려고 합니다.
배터리와 키트 사이에 스위치를 연결하면 될것 같아서 연결을 해보았는데 모터가 반응을 하지 않아서 질문드립니다 지금 이런식으로 연결을 하면 물론 모터에 어떤 부하가 걸릴지는 장담할 순 없지만 이론적으로는 가능하여 시도하고 있는데 잘 되지를 않습니다.
(스위치는 전압체크했을 때 볼트가 찍히는 걸로 봐서는 스위치는 정상이라 판단 됩니다.)
그리고 이곳 홈페이지를 통해서 정,역회전 소스 예제를 다운받아 봤는데, 전기전자 쪽은 워낙 잘 몰라서 어느 부분을 어떻게 바꿔줘야 되는지 잘 모르겠습니다.
어느부분을 바꿔줘야 한는건지 부탁드립니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
길게 써주시기는 했는 데, 정확한 질문을 이해하기 어렵습니다.
AVR 킷트를 쓰겠다는 건지, 아니면 킷트없이 스위치보드+모터구동부만으로 동작시키겠다는 건지 등등에 관해 이해가 잘 안갑니다.
요약해보면 AVR 킷트 + 스위치보드 + 모터 구동부 이렇게 쓰겠다는 건가요? 컴퓨터로 프로그램해서 집어넣구요?
http://cafe.naver.com/newtc/315
여기가면 AM-DC2-4 사용하는 방법이 잘 설명되어 있습니다.
참고하시면 좋겠습니다.
수고하세요.
>안녕하십니까! 강원대학교 삼척캠퍼스 자동차공학과 4학년에 재학중인 학생입니다.
>
>지금 학교에서 설계프로젝트 진행중에 저희가 자동차문 손잡이 아이디어를 내고 지금 제작 과정중에 있습니다.
>
>아이디어 내용을 말씀드리면 자동차 문 손잡이가 들어가는 동작으로, 평소에는 완전히 감춰진 상태 로있다가 운전자가 필요시에만 나오게 됩니다.
>
>그리고 여기에서 손잡이가 나오고 들어가는것을 저희가 제작하여 만들고 있는 과정인데 손잡이를 밀어주고 당겨주는것을 DC모터를 이용해서 찾는 중에 AM-DC1-3D 키트를 이용해서 제어를 할려고 합니다.
>
>원래를 컴퓨터를 이용하여 소스를 짜고 키트와 통신을 해야 되는데, 저희는 모터 정,역회전 구현만 할 수 있으면 되는 정도라서 스위치를 이용할려고 합니다.
>
>배터리와 키트 사이에 스위치를 연결하면 될것 같아서 연결을 해보았는데 모터가 반응을 하지 않아서 질문드립니다 지금 이런식으로 연결을 하면 물론 모터에 어떤 부하가 걸릴지는 장담할 순 없지만 이론적으로는 가능하여 시도하고 있는데 잘 되지를 않습니다.
>(스위치는 전압체크했을 때 볼트가 찍히는 걸로 봐서는 스위치는 정상이라 판단 됩니다.)
>
>그리고 이곳 홈페이지를 통해서 정,역회전 소스 예제를 다운받아 봤는데, 전기전자 쪽은 워낙 잘 몰라서 어느 부분을 어떻게 바꿔줘야 되는지 잘 모르겠습니다.
>
>어느부분을 바꿔줘야 한는건지 부탁드립니다.
|
||||
| 6440 | 답변완료 ADC 문의 | 안재철 | 2011-06-24 | 1,422 |
|
128 PRO MCU를 가지고 ADC 테스트를 하고 있습니다. PORTF0 ~ PORTF7 까지 사용하구요.
테스트를 위해 가변 저항을 사용하고 있는데요..
MCU 전원이 꺼진 상태에서도 가변저항으로부터 들어오는 전압 0~5에 의해
MCU가 동작을 하는 증상을 보이는데 괜찮은 건가요?? 가지고 있는 모듈이 모두 그러합니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
혹시, MCU 전원이 꺼진 상태라는 것이 무슨 말인지요?
USBISP를 쓰는 경우, 스위치 설정에 따라서 USB를 통해서 전원이 공급될 수도 있으니까요.
전원이 들어가지 않으면 MCU는 동작하지 않는 것이 정상이므로, 그런 일은 정상적인 상황이라면, 일어나기 어려워서 그렇게 생각됩니다.
수고하세요.
>128 PRO MCU를 가지고 ADC 테스트를 하고 있습니다. PORTF0 ~ PORTF7 까지 사용하구요.
>
>테스트를 위해 가변 저항을 사용하고 있는데요..
>
>MCU 전원이 꺼진 상태에서도 가변저항으로부터 들어오는 전압 0~5에 의해
>
>MCU가 동작을 하는 증상을 보이는데 괜찮은 건가요?? 가지고 있는 모듈이 모두 그러합니다.
>
>
|
||||
| 6439 | 답변완료질문드립니다 | 김철수 | 2011-06-24 | 1,436 |
|
AB-M128-B 소형 개발보드와 AM-MS2를 이용하여 스테핑모터를 구동하고 있습니다.
AM-MS2 2개 중 1개는 3A가 필요한 모터 2개
그리고 또 한개는 1.2A가 필요한 모터 1개
총 이렇게 3개의 모터가 연결되어있습니다.
지금 24V 9A 정도의 SMPS의 구매를 고려중입니다.
1. MS2의 외부전원 인가할 때 매뉴얼에는 12V라고 하였는데 지난번에 문의드렸을 때
24V를 입력하라고 하셨는데 따로 이유가 있는지 궁금합니다.
2. 그리고 위에서 언급했다시피 3A 모터2개를 연결한 MS2는 총 6A의 전류가 필요합니다.
이 때 방열판을 달라고 하셨는데 어디서 방열판을 구해야합니까??
3. 9A이상의 12V의 SMPS를 그냥 소형보드의 Input에 연결하고
소형보드의 Output 12V와 MS2의 Input를 연결하여 모터를 구동해도 상관없는지 궁금합니다.
감사합니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
답변해 드릴께요.
>1. MS2의 외부전원 인가할 때 매뉴얼에는 12V라고 하였는데 지난번에 문의드렸을 때
> 24V를 입력하라고 하셨는데 따로 이유가 있는지 궁금합니다.
===> 12V를 전원으로 넣으셔도 24V로 모듈에서 컨버팅해서 모터로 들어가게 됩니다.
따라서, 24V를 넣어주시는 것이 전원부 효율이 좋습니다.10.5V 부터 사용가능한데, 실제로는 12V 이상 되어야 정상동작하기 때문에 12V~24V 라는 의미입니다.
>
>2. 그리고 위에서 언급했다시피 3A 모터2개를 연결한 MS2는 총 6A의 전류가 필요합니다.
> 이 때 방열판을 달라고 하셨는데 어디서 방열판을 구해야합니까??
==> 본사의 보드가 교육용으로 제작되어 별도로 방열판은 붙어 있지 않은데,
모터의 최대 전류가 3A로 표기되어 있다고 해도, 실제 모터가 최대 토크때 그렇다는 것이기 때문에, 실제 사용환경에서 얼마나 쓰는 지는 측정해 봐야 하는 겁니다. 따라서, 일단 토크가 그리 크지 않거나 잘 모른다면, 우선 먼저 전류를 얼마나 쓰는 지 보고, 가변 저항 조절하여 바이어스 변경하면서 잘 동작하는 지 확인하고, 그 후에 굳이 필요하다면 방열판으로 쓰도록 알미늄 판 등을 재단하여 쓰거나 해야 겠습니다. 상용으로 파는 것들은 정확하게 딱 붙일 수는 없습니다. 왜냐하면, PCB에 딱 맞게 붙이려면, PCB 자체도 그에 맞게 디자인 되었어야 합니다만, 본사 보드가 그렇지 않기 때문이죠. 직접 알미늄 판 사서, 필요한 만큼 잘라서, 구멍내서 쓰는 것이 좋겠습니다.
>
>3. 9A이상의 12V의 SMPS를 그냥 소형보드의 Input에 연결하고
> 소형보드의 Output 12V와 MS2의 Input를 연결하여 모터를 구동해도 상관없는지 궁금합니다.
==> 안됩니다. 왜냐하면, 소형보드의 Output 12V는 최대 3A 정도까지만 동작하기 때문에, 최대 토크 구동시에는 무리 될 수 있습니다. 모터용 전압은 모터로 직접 연결해 주는 것이 가장 좋겠습니다.
만약, 풀 토크가 아니라서, 관계 없다면 상관없겠지만요.
>감사합니다.
수고하세요.
|
||||
| 6438 | 답변완료AD-USBISP V0.3 에러 문의 | 김규복 | 2011-06-23 | 1,390 |
|
AD-USBISP V0.3 을 사용하고 있습니다.
ISP 다운로드가 잘 안되서 문의를 드립니다.
AVR Studio 4 에서 사용하고 있으며, 약 1년전에는 정상적으로 동작하던 제품이었습니다.
타겟보드 CPU 는 ATmega128 입니다.
동작 상태 설명
1. 제품 연결 후에도, USBISP 붉은색 LED가 점멸하고 있습니다. 사용자 메뉴얼에서는 녹색 LED 가 들어와야한다고 되어 있던데요. 이 상태에서는 다운로드가 안되는건가요??
2. AVR Studio 4 에서 연결하면, 인식이 됩니다. Erase / Read / Program 동작 후에 [OK!] 메세지도 잘 나오고 있습니다. 하지만 퓨즈 설정이나 다운로드가 안됩니다. Write 가 안되는것인지... Read 가 안되는것인지... 둘다 안되는것인지 판단이 안됩니다.
3. Read 동작 시에 녹색 LED 가 잠깐 들어오는것은 확인했습니다. 그외의 동작에서는 붉은색 LED가 점멸하고 있습니다.
위에서 설명한 내용을 갭쳐해서 올립니다~
사용자 메뉴얼을 참고로 해서, 계속 테스트 중에 있습니다만 잘 안되네요...
하루종일 고생하고 있습니다. 도와주세요~
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
아마도 타겟 보드에 전원이 제대로 공급되지 않거나, 타겟 보드가 망가진 것이 아닌가 싶습니다.
이 경우. USBISP가 망가졌을 확률은 20% 미만이라서, 아마도 타겟보드가 망가진 것 같습니다.
타겟 보드를 점검하여 보시거나, 방법이 없으시거나, 잘 하기 어렵다면, 본사로 방문하거나 택배로 A/S나 점검해 보시기 바랍니다. 방문시 택배비가 안들고, 바로 해 가실 수 있어서 편리합니다.
감사합니다.
>AD-USBISP V0.3 을 사용하고 있습니다.
>ISP 다운로드가 잘 안되서 문의를 드립니다.
>
>AVR Studio 4 에서 사용하고 있으며, 약 1년전에는 정상적으로 동작하던 제품이었습니다.
>타겟보드 CPU 는 ATmega128 입니다.
>
>
>동작 상태 설명
>1. 제품 연결 후에도, USBISP 붉은색 LED가 점멸하고 있습니다. 사용자 메뉴얼에서는 녹색 LED 가 들어와야한다고 되어 있던데요. 이 상태에서는 다운로드가 안되는건가요??
>
>2. AVR Studio 4 에서 연결하면, 인식이 됩니다. Erase / Read / Program 동작 후에 [OK!] 메세지도 잘 나오고 있습니다. 하지만 퓨즈 설정이나 다운로드가 안됩니다. Write 가 안되는것인지... Read 가 안되는것인지... 둘다 안되는것인지 판단이 안됩니다.
>
>3. Read 동작 시에 녹색 LED 가 잠깐 들어오는것은 확인했습니다. 그외의 동작에서는 붉은색 LED가 점멸하고 있습니다.
>
>
>
>위에서 설명한 내용을 갭쳐해서 올립니다~
>
>사용자 메뉴얼을 참고로 해서, 계속 테스트 중에 있습니다만 잘 안되네요...
>
>하루종일 고생하고 있습니다. 도와주세요~
>
>
|
||||
| 6437 | 답변완료usb-uart 모듈(AD-USBTINY)드라이버가 WINDOW 7(64BIT)에서 설치하는 방법 | 황수택 | 2011-06-23 | 1,246 |
|
자료실에 등록된 드라이버 WINDOW 7용
usb-uart 모듈(AD-USBTINY)드라이버가 WINDOW 7(64BIT)에서 설치 되지않은 이유를 알고 싶습니다
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
WINDOWS 7 64비트 부터는 Microsoft에서 인증받은 드라이버만 인식합니다.
본사가 배포중인 드라이버는 32비트까지는 문제 없지만, 인증받은 드라이버가 아니라서, 64비트에서는 사용되지 않습니다. 하지만, 아래와 같이 칩 제조사인 Silabs 사의 드라이버를 사용하도록 조금 변경하면 64비트에서도 사용 가능합니다. 아래에 링크를 드리니, 그 링크대로 해보시면 됩니다.
하다 잘 안되시면, 본사로 연락 주시면 도와드리겠습니다. 예전 USBISP V03과 같은 칩을 사용하였으므로, 같은 방법으로 진행하면 되는 겁니다.
- 아래 -
http://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
감사합니다.
>자료실에 등록된 드라이버 WINDOW 7용
>usb-uart 모듈(AD-USBTINY)드라이버가 WINDOW 7(64BIT)에서 설치 되지않은 이유를 알고 싶습니다
|
||||
| 6436 | 답변완료인터넷으로 아트메가 제어?? | 이규영 | 2011-06-22 | 1,143 |
|
인터넷웹상에서 프로그램한걸 아트메가 제어가능한가요??
제어 가능하다면 어떤 디바이스를 써야 하나요??
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
Serial to Ethernet 모듈들이 판매되고 있는 데,
그 모듈들을 이용하여 Ethernet을 Serial로 변환한 후에, Serial 쪽에 AVR의 UART 물려서 쓰면 될 것 같네요. 아래에 예를 하나 들었습니다.
- 예 -
http://www.eleparts.co.kr/front/productdetail.php?productcode=035006004000000009&sort=
수고하세요.
>인터넷웹상에서 프로그램한걸 아트메가 제어가능한가요??
>
>제어 가능하다면 어떤 디바이스를 써야 하나요??
|
||||
| 6435 | 답변완료ATmega128 PWM 출력관련 | 이상훈 | 2011-06-21 | 1,436 |
|
제가 이번에 ATmega128A로 PWM 출력 시험중인데요,50kHz PWM 출력을 시험중 이상한
동작이 발견되어 자문을 구합니다.
ATmega128에서 OC0~OC3C까지 모두시 험해 보았는데 다 똑같은 증상입니다.
원하는 주파수를생성하면 항상 일정 분주비의 저주파신호가같이 출력됩니다.
예를들어 50kHz를 생성하면 1.58Hz의 저주파가 같이 and되어 출력되구요,
100kHz를 생성하면 3.16Hz의 저주파가 같이 믹스되어 출력됩니다.
혹시 이유를 알수 있을까요? 저주파도 특정 분주비를 가지고 일정하게 생성되는걸 봐선
분명 무슨 규칙적인 일정한 문제가 있는듯한데 못찾겠습니다.
관리자 답변
안녕하세요
레지스터 셋팅 문제가 있는 듯합니다.
아니면 pwm 으로 낼수 있는 최대주파수를 확인해 보시길 바랍니다.
아래코드는 mega32의 timer0 - pwm 으로 사용된 코드입니다.
참고 하시길 바랍니다.
수고하세요
//ICC-AVR application builder : 2010-01-29 오후 4:49:56
// Target : M32
// Crystal: 7.3728Mhz
#include <iom32v.h>
#include <macros.h>
#include <stdio.h>
#define LED_0 ( 1 << 0 )
#define LED_1 ( 1 << 1 )
#define LED_2 ( 1 << 2 )
#define LCD_LIGHT ( 1 << 3 )
#define LCD_DATA PORTA
#define LCD_CON PORTC
#define LCD_CS ( 1 << 7 )
#define LCD_A0 ( 1 << 6 )
#define LCD_WR ( 1 << 5 )
#define LCD_RD ( 1 << 4 )
#define LCD_RST ( 1 << 0 )
#define PORT_SPI PORTB
#define ADS7846_CS ( 1 << 2 )
#define ADS7846_BUSY ( 1 << 1 )
#define ADS7846_START ( 1 << 7 )
//SER
#define X_PLATE 299
#define Y_PLATE 1402
#define ADS7846_SER_T0 ( 0 << 4 )
#define ADS7846_SER_Y ( 1 << 4 )
#define ADS7846_SER_BAT ( 2 << 4 )
#define ADS7846_SER_P1 ( 3 << 4 )
#define ADS7846_SER_P2 ( 4 << 4 )
#define ADS7846_SER_X ( 5 << 4 )
#define ADS7846_SER_AUX ( 6 << 4 )
#define ADS7846_SER_T1 ( 7 << 4 )
//DFR
#define ADS7846_DFR_Y ( 1 << 4 )
#define ADS7846_DFR_P1 ( 3 << 4 )
#define ADS7846_DFR_P2 ( 4 << 4 )
#define ADS7846_DFR_X ( 5 << 4 )
//
#define ADS7846_BIT08 ( 1 << 3 )
#define ADS7846_BIT12 ( 0 << 3 )
//
#define ADS7846_SER ( 1 << 2 )
#define ADS7846_DFR ( 0 << 2 )
#define ADS7846_MODE0 ( 0 << 0 ) // Use ADC ON. Not,Use POWER DOWN.
#define ADS7846_MODE1 ( 1 << 0 ) // Int. Vref off. ADC on.
#define ADS7846_MODE2 ( 2 << 0 ) // INT. Vref on. ADC off.
#define ADS7846_MODE3 ( 3 << 0 ) // INT. Vref on. ADC on.
#define PWR_SW ( 1 << 7 )
#define PWR_ON ( 1 << 6 )
#define BAT_LOW ( 1 << 5 )
unsigned char ucDisplayBuf[1024];
unsigned int uipwr_cnt;
void Delay_ms ( unsigned int ms );
void Delay_us ( unsigned int us );
void LCD_Command ( unsigned char cmd );
void LCD_Write_Data ( unsigned char data );
void LCD_Data_Display ( unsigned char *buf );
void LCD_Init ( void );
void SPI_Master_Init ( void );
unsigned char SPI_Master_Transmit_Receive ( unsigned char cData );
unsigned int ADS7846_Data_Read ( unsigned char cmd );
void ADS7846_init ( void );
void ADS7846_init ( void );
void port_init(void);
const unsigned char naroo[1026] =
{
0x80, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1c, 0x1c, 0x3c, 0x3c, 0x7c, 0x7c, 0x7c, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
0x9c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0x3c, 0x7c, 0xfc, 0xfc,
0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0x7c, 0x7c, 0x3c,
0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xbc, 0xfc, 0xfc,
0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x7c, 0x7c, 0x7c, 0x3c, 0x3c, 0x3c, 0x1c, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07,
0x07, 0x07, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xfc, 0xfc,
0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xe1, 0xe0, 0xe0, 0xc0, 0x40, 0x60,
0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x07, 0x07, 0x03, 0x03,
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0,
0xe0, 0x70, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x1b,
0x01, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe1, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x1f,
0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x70, 0xf0, 0xe0, 0xe0, 0xc0,
0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0xbc, 0xbc, 0xbc, 0xbe, 0xbe, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9f, 0x9d,
0x9c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x98, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c,
0x9e, 0x9e, 0x1f, 0x0f, 0x0f, 0x07, 0x03, 0x01, 0x01, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x3e, 0x3c, 0x3c, 0x3c,
0xbc, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0x38, 0x38, 0x3c, 0x3d, 0x3f, 0x3f,
0x3f, 0x3f, 0xbf, 0xbf, 0xbf, 0xbf, 0xbe, 0xbe, 0xbe, 0xbc, 0xbc, 0xb8, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff,
0xff, 0xff, 0xff, 0x07, 0x07, 0x1f, 0x7f, 0xff, 0xfe, 0xf8, 0xf0, 0x80, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xe7, 0xe3, 0xe3, 0xe3, 0xe7,
0xe7, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x73,
0x73, 0xf3, 0xf3, 0xf3, 0xf3, 0xf7, 0xff, 0xff, 0x7f, 0x3e, 0x08, 0x00, 0xfc, 0xff, 0xff, 0xff,
0xff, 0xaf, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff,
0xff, 0xff, 0xff, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x07, 0x06, 0x04, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x07,
0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x01,
0x00, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char tttt[1024] =
{
0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
0x7e, 0x3e, 0x3e, 0x3e, 0x3e, 0x1e, 0x1e, 0x1e, 0x0e, 0x0e, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
0x00, 0xff, 0x7f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0x9f,
0x4f, 0x0f, 0x1f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0x00, 0xff, 0xf3, 0x67, 0x67, 0xe7, 0x27, 0x07, 0x03, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xfc,
0xfc, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0xf0,
0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0x00, 0xff, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xf8, 0xf8, 0xfc, 0xfe, 0xde, 0xde,
0xcf, 0xef, 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0x00, 0xff, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3f,
0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x0f, 0x0f, 0x87, 0x1f, 0x7f, 0x7f, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xff, 0xff,
0x00, 0xff, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x36, 0x3f, 0x3f, 0x7c,
0x30, 0x00, 0x80, 0xc0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x80,
0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xf0, 0xfc, 0xfc, 0xff, 0xfe, 0xfe, 0xff, 0xff,
0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xc0, 0x60, 0x60, 0x20, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x1e, 0x1e, 0x1c, 0x3c, 0x38, 0x30, 0x30, 0x60,
0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f,
0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0xff, 0xff,
0x00, 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x09,
0x09, 0x09, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x0f,
};
const unsigned char logo[1024] =
{
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xe0, 0x70, 0x38, 0x1c,
0x8e, 0x86, 0xc7, 0xc7, 0xe7, 0xe7, 0xe7, 0xe6, 0xe6, 0x6e, 0x4e, 0xcc, 0x9c, 0x38, 0x38, 0x70,
0xf0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0xfe, 0xc7, 0x83, 0x13, 0x33, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xe3, 0x07,
0x0f, 0xfe, 0xf0, 0xfe, 0xff, 0x07, 0x03, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xe1, 0xf0, 0xfc, 0xfe,
0xff, 0xff, 0x3f, 0x0f, 0x87, 0xe3, 0xf1, 0x38, 0x38, 0x1c, 0x1c, 0x1c, 0x38, 0xf1, 0xe2, 0xc6,
0xc8, 0xc1, 0xe3, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0xf4, 0xbf, 0x1f, 0x07, 0xc3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3,
0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3,
0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xe3, 0xe7, 0xe7, 0xe7,
0xc7, 0xce, 0x8e, 0x1c, 0x18, 0x38, 0x70, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xfe, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf8, 0x80, 0x07, 0x3f, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x27, 0x60, 0xe0, 0xe6, 0xe7, 0xe7, 0xe7, 0x27, 0x27, 0x27, 0x27, 0x27, 0x67, 0x67, 0xe7, 0xe7,
0x27, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x67, 0x23, 0x27, 0x07, 0x27, 0x27, 0x67, 0xe7, 0xe7, 0xe7,
0xe7, 0xe7, 0xe7, 0x23, 0x20, 0x00, 0x07, 0x27, 0x27, 0x27, 0xe7, 0x67, 0x27, 0x07, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0xe7, 0xff, 0xff, 0xff,
0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x0f, 0x0f,
0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xfe, 0xf8, 0xf0, 0xc1, 0x87, 0x1f, 0x7c, 0xf0, 0xc0, 0x00, 0x00,
0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff,
0xff, 0xff, 0xfc, 0xe0, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0x80, 0xe0, 0xfc, 0x00, 0x00, 0x03, 0x07,
0x04, 0x00, 0x07, 0x3f, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x1f, 0x5f, 0x5f,
0x5f, 0xff, 0xff, 0xfd, 0xd0, 0x80, 0x00, 0x40, 0xe0, 0x7e, 0x07, 0xc0, 0x00, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x18, 0x10, 0x03, 0xcf, 0xfe, 0x70,
0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, 0x3f,
0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x02, 0x03, 0x07, 0x0f, 0x7f, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x40, 0x00, 0x80, 0x03, 0x3f, 0xff, 0xff, 0xfe, 0xe4, 0x78, 0x2d, 0x01, 0xc0, 0x40, 0x40,
0x40, 0x07, 0x7f, 0xff, 0xff, 0xf7, 0xf0, 0x78, 0x0f, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xe0, 0xf0, 0xe0, 0x70, 0x30, 0x82, 0xcf, 0xff, 0x38,
0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x03, 0xff, 0xe0,
0x01, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf0, 0x18, 0x1f, 0x9f, 0x9f, 0x9f, 0x9f, 0x98, 0x98, 0x90, 0x90, 0x98, 0x98, 0x9c, 0x9e, 0x9f,
0x9f, 0x80, 0xe8, 0xff, 0xfe, 0xc0, 0x87, 0x17, 0x1f, 0x8b, 0xc0, 0xe8, 0x7d, 0x1f, 0x5f, 0x5f,
0x5f, 0xfc, 0xc0, 0x83, 0x1f, 0x1f, 0x86, 0x80, 0xf2, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0xf0, 0xc0, 0x87, 0x1f, 0x7f, 0xff, 0xff,
0xff, 0xfc, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xe0,
0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x83, 0xe0, 0xfc, 0x3f, 0x07, 0x00, 0x00,
0x10, 0xff, 0xcf, 0x80, 0x90, 0x9b, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x80, 0xc0, 0xff, 0x3f,
0x3f, 0xf0, 0xc0, 0x87, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x7f,
0xff, 0xff, 0xfc, 0xf0, 0xe1, 0xc7, 0x8f, 0x1f, 0x1b, 0x3b, 0x3b, 0x3b, 0x1f, 0x8f, 0x47, 0x63,
0x13, 0x83, 0xc7, 0xfe, 0x7c, 0x01, 0x03, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, 0x01, 0x7c, 0xff, 0xe0, 0x80, 0x88, 0x9f, 0x9f,
0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x80, 0x80, 0xff, 0xff, 0x41, 0x03, 0x07, 0x0e, 0x1c, 0x38, 0x71,
0xe3, 0xe7, 0xc7, 0xcf, 0x8f, 0x9f, 0x9f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x9f, 0x9f, 0x8f,
0xcf, 0xc7, 0xe7, 0xe3, 0x71, 0x38, 0x18, 0x1e, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0f, 0x1c, 0x38,
0x71, 0x61, 0xe3, 0xe3, 0xe7, 0xe7, 0xe7, 0x67, 0x67, 0x76, 0x72, 0x33, 0x39, 0x1c, 0x1c, 0x0e,
0x0f, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03,
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// printf 함수 사용시 추가할 것.
int putchar(char c)
{
while (((UCSRA>>UDRE)&0x01) == 0) ; // UDRE, data register empty
UDR = c;
return c;
}
// scanf 함수 사용시 추가할 것.
int getchar(void)
{
while ((UCSRA & 0x80) == 0);
return UDR;
}
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff;
PORTB = 0x10;
DDRB = 0xed;
PORTC = 0x00;
DDRC = 0xf7;
PORTD = 0x04;
DDRD = 0x40;
}
//TIMER0 initialize - prescale:64
// WGM: PWM Phase correct
// desired value: 225.8Hz
// actual value: 225.882Hz (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0x01; //set count
OCR0 = 0xFF; //set compare
/*
void timer0_init(void)
{
TCCR0 = 0x00; //stop
TCNT0 = 0xE4; //set count
OCR0 = 0x1C; //set compare*/
TCCR0 = 0x64; //start timer
}
//TIMER1 initialize - prescale:64
// desired value: 10Hz
// actual value: 10.001Hz (0.0%)
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xD3; //setup
TCNT1L = 0x01;
OCR1AH = 0x2C;
OCR1AL = 0xFF;
OCR1BH = 0x2C;
OCR1BL = 0xFF;
ICR1H = 0x2C;
ICR1L = 0xFF;
TCCR1A = 0x00;
TCCR1B = 0x03; //start Timer
}
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
//TIMER1 has overflowed
TCNT1H = 0xD3; //reload counter high value
TCNT1L = 0x01; //reload counter low value
PORTC ^= LED_0;
LCD_Data_Display( ucDisplayBuf );
if (( PIND&PWR_SW) == PWR_SW )
{
uipwr_cnt++;
}
}
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
TCNT0 = 0xE4; //reload counter value
PORTC ^= LED_1;
}
//SPI initialize
/*// clock rate: 3686398hz
void spi_init(void)
{
SPCR = 0x50; //setup SPI
SPSR = 0x01; //setup SPI
}*/
void SPI_Master_Init ( void )
{
//DDR_SPI = ( SPI_MOSI | SPI_SCK | SPI_CS ); // Set MOSI and SCK output, all others input
SPCR = 0x52;//( 1 << SPE )|( 1 << MSTR ); // Enable SPI, Master, set clock rate fck/16
SPSR = 0x00;
}
unsigned char SPI_Master_Transmit_Receive ( unsigned char cData )
{
SPDR = cData; // Start transmission
while( !( SPSR & ( 1 << SPIF ))); // Wait for transmission complete
return SPDR; // Return data register
}
unsigned int ADS7846_Data_Read ( unsigned char cmd )
{
unsigned int data;
data = 0;
PORT_SPI &= ~ADS7846_CS;
//Delay_us ( 10 );
SPI_Master_Transmit_Receive( cmd );
while (( PINB&ADS7846_BUSY ) != ADS7846_BUSY );
//Delay_us ( 1 );
data = SPI_Master_Transmit_Receive( 0 );
data = data << 8;
data |= SPI_Master_Transmit_Receive( 0 );
data = data >> 3;
PORT_SPI |= ADS7846_CS;
return data;
}
void ADS7846_init ( void )
{
SPI_Master_Init ( );
//ADS7846_Data_Read( ADS7846_START | ADS7846_CH_X | ADS7846_BIT12 | ADS7846_MODE0 );
PORT_SPI &= ~ADS7846_CS;
SPI_Master_Transmit_Receive( ADS7846_START | ADS7846_SER_X | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 );
while (( PINB&ADS7846_BUSY ) != ADS7846_BUSY );
SPI_Master_Transmit_Receive( 0 );
SPI_Master_Transmit_Receive( 0 );
PORT_SPI |= ADS7846_CS;
}
//call this routine to initialize all peripherals
int flag = 0;
unsigned int data [40];
//#pragma interrupt_handler int0_isr:2
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
int i;
PORTC |= LED_2;
GICR = 0x00;
//external interupt on INT0
//printf ( "\\r\\n X = %d , Y = %d P1 = %d , P2 = %d", ADS7846_Data_Read( ADS7846_START | ADS7846_CH_P1 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ),
// ADS7846_Data_Read( ADS7846_START | ADS7846_CH_P2 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ));
// printf ( "\\r\\n X = %d , Y = %d ", ADS7846_Data_Read( ADS7846_START | ADS7846_CH_X | ADS7846_BIT12 | ADS7846_MODE0 ),
// ADS7846_Data_Read( ADS7846_START | ADS7846_CH_Y | ADS7846_BIT12 | ADS7846_MODE0 ));
// for ( i = 0 ; i < 10 ; i++ )
data [ 5 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_DFR_X | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 );
// for ( i = 10 ; i < 20 ; i++ )
data [ 15 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_DFR_Y | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 );
// for ( i = 20 ; i < 30 ; i++ )
data [ 25 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_DFR_P1 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 );
// for ( i = 30 ; i < 40 ; i++ )
data [ 35 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_DFR_P2 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 );
//data [ 1 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_SER_X | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 );
//data [ 2 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_SER_P1 | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 );
//data [ 3 ] = ADS7846_Data_Read( ADS7846_START | ADS7846_SER_P2 | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 );
// printf ( "\\r\\n T0 = %d , T1 = %d ", ADS7846_Data_Read( ADS7846_START | ADS7846_CH_T0 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ),
// ADS7846_Data_Read( ADS7846_START | ADS7846_CH_T1 | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ));
// printf ( "\\r\\n P1 = %d , P2 = %d ", ADS7846_Data_Read( ADS7846_START | ADS7846_CH_P1 | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 ),
// ADS7846_Data_Read( ADS7846_START | ADS7846_CH_P2 | ADS7846_BIT12 | ADS7846_SER | ADS7846_MODE0 ));
// printf ( "\\r\\n BAT = %d , AUX = %d ", ADS7846_Data_Read( ADS7846_START | ADS7846_CH_BAT | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ),
// ADS7846_Data_Read( ADS7846_START | ADS7846_CH_AUX | ADS7846_BIT12 | ADS7846_DFR | ADS7846_MODE0 ));
flag = 1;
PORTC &= ~LED_2;
}
//UART0 initialize
// desired baud rate: 115200
// actual: baud rate:115200 (0.0%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x03; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x18;
}
void init_devices ( void )
{
//stop errant interrupts until set up
CLI( ); //disable all interrupts
port_init ( );
uart0_init ( );
timer0_init ( );
timer1_init ( );
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x05; //timer interrupt sources
SEI( ); //re-enable interrupts
//all peripherals are now initialized
}
void Delay_ms ( unsigned int ms )
{
int i,j;
for( i=0 ; i<ms ; i++ )
for( j=0 ; j<1000 ; j++ );
}
void Delay_us ( unsigned int us )
{
int i;
for( i=0 ; i<us ; i++ );
}
void LCD_Command ( unsigned char cmd )
{
LCD_DATA = cmd;
LCD_CON &= ~LCD_A0;
LCD_CON &= ~LCD_CS;
LCD_CON &= ~LCD_WR;
LCD_CON |= LCD_RD;
Delay_us ( 1 );
LCD_CON |= LCD_WR;
LCD_CON |= LCD_CS;
// Delay_us ( 100 );
}
void LCD_Write_Data ( unsigned char data )
{
LCD_DATA = data;
LCD_CON |= LCD_A0;
LCD_CON &= ~LCD_CS;
LCD_CON &= ~LCD_WR;
LCD_CON |= LCD_RD;
Delay_us ( 1 );
LCD_CON |= LCD_WR;
LCD_CON |= LCD_CS;
// Delay_us ( 100 );
}
void LCD_Data_Display ( unsigned char *buf )
{
unsigned char row,column;
for( row = 0xB0 ; row < 0xB8 ; row++ )
{
LCD_Command( row ); //set page address
LCD_Command( 0x10 ); //set column address high
LCD_Command( 0x04 ); // low
for( column = 0 ; column < 128 ; column++ )
LCD_Write_Data( *buf++ );
// LCD_Write_Data( buf[ (( row - 0xB0 ) * 128 ) + col ] );
}
}
void Display_Pixel_buf( unsigned int x, unsigned int y,unsigned int color )
{
unsigned int row,column;
//printf ( "buf = %x, %x ", x,y);
row = ( y / 8 ) * 128 ;
column = 127 - x;
if ( color )
ucDisplayBuf [ column+row ] |= ( 1 << ( y % 8 ));
else
ucDisplayBuf [ column+row ] &= ~( 1 << ( y % 8 ));
}
void LCD_Init ( void )
{
PORTB |= LCD_RST;
Delay_us ( 100 );
PORTB &= ~LCD_RST;
Delay_us ( 100 );
PORTB |= LCD_RST;
Delay_us ( 100 );
LCD_Command ( 0xa1 ); // ADC Select (Segment Driver Direction Select)
LCD_Command ( 0xc0 ); // Common Output Mode Select
LCD_Command ( 0xA2 ); // LCD Bias Set 0xa2 ? 0xa3 ?
LCD_Command ( 0x2f ); // Power control set
LCD_Command ( 0x23 ); // V0 voltage regulator internal resistor ratio set
LCD_Command ( 0x81 );//The Electronic Volume (Double Byte Command)
LCD_Command ( 45 ); // Electronic volume register set//45 WHITE30
// LCD_Command ( 0x2f ); // Power control set
LCD_Command ( 0xaf ); // Display ON > 0xaf OFF > 0xae
}
#define X_MIN 200
#define X_MAX 3450
#define Y_MIN 340
#define Y_MAX 2800
void main ( void )
{
unsigned int i=0;
unsigned char buf=0,a;
unsigned int x_position ,y_position;
unsigned int z1_position,z2_position;
float x_axis,y_axis;
float pressure,pressure2;
init_devices ( );
LCD_Init ( );
ADS7846_init ( );
GICR = 0x40;// = 0x40;
OCR0 = 0xf0;
uipwr_cnt = 0;
while(( PIND&PWR_SW ) == PWR_SW )
{
if ( uipwr_cnt > 15 )
{
PORTD |= PWR_ON;
for(i=0;i<1024;i++)
ucDisplayBuf[i] = naroo[i];
break;
}
}/*
while(( PIND&PWR_SW ) != PWR_SW );
for(i=0;i<1024;i++)
ucDisplayBuf[i] = 0xff;*/
//printf("%");
//Delay_ms( 50 );
/*
if(( PIND&PWR_SW ) == PWR_SW )
PORTD |= PWR_ON;
*/
//LCD_Data_Display(ucDisplayBuf);
while(1)
{
PORTC &= ~LED_0;
// LCD_Data_Display(0x0f);
//Delay_ms(5);
PORTC |= LED_0;
// Delay_ms(5);
PORTC &= ~LED_2;
if ( flag )
{
x_position = data[5];
y_position = data[15];
z1_position = data[25];
z2_position = data[35];
// for( i=0 ; i<10 ; i++ )
//pressure=( float )X_PLATE * ( float )x_position;
pressure = (( X_PLATE*( float )x_position ) / 4096 ) * (( ( float )z2_position / ( float )z1_position ) - 1 );
//pressure2 = ((( X_PLATE * ( float )x_position ) / 4096 ) * (( 4096 / ( float )z1_position ) - 1))
// -( Y_PLATE* ( 1 - (( float )y_position / 4096 )));
//if((pressure < 550)&&(350 < pressure ))
if(( pressure > 100 ) && ( pressure < 160 ))
{
//printf ( "\\n\\r X = %d ,Y = %d ,P1 = %d ,P2 = %d , pre = %f ", data[5],data[15],data[25],data[35],pressure);
x_axis = (( float )128 / ( X_MAX - X_MIN )) * x_position;
y_axis = (( float ) 64 / ( Y_MAX - Y_MIN )) * y_position;
//x_axis = x_axis * x_position;
//y_axis = y_axis * y_position;
//printf ( "\\n\\r x = %f , y = %f ", x_axis,y_axis);
//printf ( " x = %x , y = %x ", ( unsigned int )x_axis, ( unsigned int )y_axis );
Display_Pixel_buf (( unsigned int )x_axis-8, ( unsigned int )y_axis-8 , 0);
}
flag = 0;
//Delay_ms(50);
GICR = 0x40;
}
uipwr_cnt = 0;
while(( PIND&PWR_SW ) == PWR_SW )
{
if ( uipwr_cnt > 15 )
{
for(i=0;i<1024;i++)
ucDisplayBuf[i] = 0x00;
PORTC &= ~ ( LED_0 | LED_1 | LED_2 );
// while(( PIND&PWR_SW ) != PWR_SW )
PORTD &= ~PWR_ON;
break;
}
}
}
}
>제가 이번에 ATmega128A로 PWM 출력 시험중인데요,50kHz PWM 출력을 시험중 이상한
>
>동작이 발견되어 자문을 구합니다.
>
>ATmega128에서 OC0~OC3C까지 모두시 험해 보았는데 다 똑같은 증상입니다.
>
>원하는 주파수를생성하면 항상 일정 분주비의 저주파신호가같이 출력됩니다.
>
>예를들어 50kHz를 생성하면 1.58Hz의 저주파가 같이 and되어 출력되구요,
>
>100kHz를 생성하면 3.16Hz의 저주파가 같이 믹스되어 출력됩니다.
>
>혹시 이유를 알수 있을까요? 저주파도 특정 분주비를 가지고 일정하게 생성되는걸 봐선
>
>분명 무슨 규칙적인 일정한 문제가 있는듯한데 못찾겠습니다.
>
>
|
||||
| 6434 | 답변완료arm sam7s256 개발 키트 이용시 질문입니다 | 한동헌 | 2011-06-21 | 1,404 |
|
제가 얼마전에 arm sam7s256 개발 키드를 사서 이제 막 사용해 보려고 하는데요,
워낙 초보라 천천히 강의 자료 따라서 해볼려고 했는데 혹시 프린터 포트 없는 노트북으로도
h jtag를 사용하는 방법이 있나요?
usb to 패러럴 포트를 이용하면 h jtag를 이용해서 강의 자료대로 해 나갈 수 있는 건가요?
sam ice는 22만원이나 해서 구입하기가 좀 그래서요.
행여 사서 한다고 해도 제가 아는게 없어서 j link 설정을 어떻게 해야 할지 모르기도 하고요.
관리자 답변
안녕하세요? 고객님,
흔히 판매하는 USB to parallel 보드는 프린터 전용입니다.
또한, PCI to parallel 보드도 마찬가지구요.
그래서, 노트북에서 프린터포트용 장비를 이용할 수는 없을 것 같습니다.
해외에서 간혹 PCMCIA 용 parallel포트 보드를 고가에 판매하는 것을 보았지만,
오히려 더 비싸고, 성능 검증도 안되어서, 쓰는 것이 역시 비추천입니다.
노트북으로 쓰려면, sam-ice나 j-link 등을 사용하는 것이 좋겠습니다.
아래에 설정하는 법이 나와 있습니다.
역시 자료실의 ARM 강좌에 있는 내용입니다.
- 아래 -
http://newtc.co.kr/download/SAM7Sxxx/NTC_SAM7_강좌_2._IAR컴파일러,_디버거_사용법.pdf
패러랠 포트가 나와있지 않은 컴퓨터라도, 메인보드에 박스 커넥터가 있는 경우가 있습니다.
그 경우는 본사에 외부로 뽑을 수 있는 케이블을 판매하고 있어서, 본사로 전화하면 살 수 있습니다.
다만, 먼저 메인보드에 그 커넥터가 있는 지 확인하고 본사로 연락 주면 됩니다.
수고하세요.
>
>제가 얼마전에 arm sam7s256 개발 키드를 사서 이제 막 사용해 보려고 하는데요,
>
>
>
>워낙 초보라 천천히 강의 자료 따라서 해볼려고 했는데 혹시 프린터 포트 없는 노트북으로도
>
>h jtag를 사용하는 방법이 있나요?
>
>usb to 패러럴 포트를 이용하면 h jtag를 이용해서 강의 자료대로 해 나갈 수 있는 건가요?
>
>
>
>
>sam ice는 22만원이나 해서 구입하기가 좀 그래서요.
>
>행여 사서 한다고 해도 제가 아는게 없어서 j link 설정을 어떻게 해야 할지 모르기도 하고요.
>
>
|
||||
| 6433 | 답변완료AM-DC1-3D OR 4D 에 관하여 궁금한 점이 있습니다. | 이동윤 | 2011-06-20 | 1,313 |
|
이번에 저희가 RC카를 컨트롤 하는중에 변속기가 고장나서 이 제품을 살까 고려하고 있습니다.
변속기에는 ATCAN128로 PWM신호를 만들어서 주고 있었습니다.
그리고 모터는 RC카에 있는 DC모터 교쇼G27 single stock motor 이라는 모터를 사용하려고 합니다. 이 모터를 DC모터 제어 모듈로 제어를 하려고 하는대 여기서 궁금한 점은 모터제어를 위하여 AM-DC1-3D OR 4D 모듈중 어느 모듈을 사용하여야 하는지, 저희가 사용 하려고하는 모터를 위 모듈을 사용하여 제어 할 수 있는지, 아니면 모듈을 사용하여 제어 할수있는 모터의 종류가 따로 있는 것 인지 알고 싶습니다.
또한 제어 모듈에 들어가는 신호는 PWM신호 말고도 다른 신호가 있던대 그 신호가 무엇인지 어떤 방식으로 신호를 인가하여야 되는지 궁금합니다.
PS.모터에 공급하는 전압은 현재 RC카용 베터리 7.2V를 사용하고 있습니다.
관리자 답변
안녕하세요 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
AM-DC1-3D는 12V~55V를 사용하며, 최대 3A 순간 6A까지 사용하는 DC 모터에 사용이 가능합니다.
AM-DC2-2D는 5~45V를 사용하며, 순간 2A 최대는 1.5A 정도까지 사용이 가능합니다.
사용하시는 모터의 스펙을 찾을 수가 없었는 데, 스펙을 보시고, 전류 사용을 보세요.
보통 RC 카의 경우 사용 전류가 높아서 사용이 불가할 수도 있습니다.
사용하는 모터 메뉴얼을 보고, 사용이 가능한 지 확인하고 구매하시기 바랍니다.
예전에 1-3D로 12V이상 쓰는 RC 카에서 PWM해 가면서 쓴 적은 있었는 데, 카마다 달라서, 알수가 없네요.
수고하세요.
>이번에 저희가 RC카를 컨트롤 하는중에 변속기가 고장나서 이 제품을 살까 고려하고 있습니다.
>변속기에는 ATCAN128로 PWM신호를 만들어서 주고 있었습니다.
>그리고 모터는 RC카에 있는 DC모터 교쇼G27 single stock motor 이라는 모터를 사용하려고 합니다. 이 모터를 DC모터 제어 모듈로 제어를 하려고 하는대 여기서 궁금한 점은 모터제어를 위하여 AM-DC1-3D OR 4D 모듈중 어느 모듈을 사용하여야 하는지, 저희가 사용 하려고하는 모터를 위 모듈을 사용하여 제어 할 수 있는지, 아니면 모듈을 사용하여 제어 할수있는 모터의 종류가 따로 있는 것 인지 알고 싶습니다.
>또한 제어 모듈에 들어가는 신호는 PWM신호 말고도 다른 신호가 있던대 그 신호가 무엇인지 어떤 방식으로 신호를 인가하여야 되는지 궁금합니다.
>
>
>PS.모터에 공급하는 전압은 현재 RC카용 베터리 7.2V를 사용하고 있습니다.
>
>
>
>
|
||||
| 6432 | 답변완료stepping 모터 구동모듈에 관한 질문입니다! | 정태호 | 2011-06-20 | 1,430 |
|
컴퓨터 전원에서 12V를 스테핑 모터 구동 모듈에 넣어 주었는데(AM-CS2P)
LED에 불이 안들어 오고 있습니다.
12~24V표시가 되어 있는데 더 높은 전압을 줘야 LED에 불이 들어 오나요??
관리자 답변
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
CS2P모듈의 LED는 10핀 헤더 검정 커넥터의 9번핀(VCC)과 10번핀(GND) 사이에 5V가 들어오면 LED가 켜지도록 되어 있습니다. 9번핀과 10번핀 사이의 논리 전원을 확인하여 보기 바랍니다.
감사합니다.
>컴퓨터 전원에서 12V를 스테핑 모터 구동 모듈에 넣어 주었는데(AM-CS2P)
>LED에 불이 안들어 오고 있습니다.
>12~24V표시가 되어 있는데 더 높은 전압을 줘야 LED에 불이 들어 오나요??
|
||||
| 6431 | 답변완료AVR MEGA 128pro 개발키트 12v아답터 전류질문! | 최진성 | 2011-06-19 | 1,425 |
|
안녕하세요!
AVR MEGA 128pro 개발키트를 사용중인데요
키트에서 LED 서보모터 스피커등을 동시에 작동 시킬 경우
전류가 부족한지 LED밝기도 줄어들고 스피커 소리도 정상적으로 나오지 않습니다.
혹시 아답터의 전류를 높여 사용해도 문제가 되지 않는지 궁금합니다.
현재 DC12V 300mA 출력의 아답터를 사용중입니다.
전류를 더 높은걸로 써도 된다면 전류는 어느정도까지 허용되는지 궁금합니다!
빠른답변 부탁드립니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
제가 보기에도 서보모터가 200-300mA 정도 사용하기 때문에, 전류가 딸리는 것 같습니다.
정전압 방식의 아답타나 SMPS 라면, 1~5A 정도를 사용해도 무방합니다.
어떤 것을 써도 필요한 만큼만 전류를 당겨 쓰기 때문에, 사실 관계 없습니다.
수고하세요.
>안녕하세요!
>AVR MEGA 128pro 개발키트를 사용중인데요
>키트에서 LED 서보모터 스피커등을 동시에 작동 시킬 경우
>전류가 부족한지 LED밝기도 줄어들고 스피커 소리도 정상적으로 나오지 않습니다.
>혹시 아답터의 전류를 높여 사용해도 문제가 되지 않는지 궁금합니다.
>현재 DC12V 300mA 출력의 아답터를 사용중입니다.
>전류를 더 높은걸로 써도 된다면 전류는 어느정도까지 허용되는지 궁금합니다!
>
>빠른답변 부탁드립니다.
>
|
||||
| 6430 | 답변완료isp를 통해 프로그램을 보드에 입력하려고 하는데 에러가 뜹니다. | 지니 | 2011-06-18 | 1,359 |
|
C:\\iccv7avr\\bin\\imakew -f LEDSHIFT1.mak
iccavr -o LEDSHIFT1 -g -nb:42 -e:0x20000 -ucrtatmega.o -bfunc_lit:0x8c.0x1000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:30 -beeprom:0.4096 -fihx_coff -S2 @LEDSHIFT1.lk -lcatm128
ROM 0% full. 268 out of 131072 bytes used.
RAM 0 bytes used (does not include stack usage).
Done. Sat Jun 18 21:02:51 2011
"C:\\Program Files\\Atmel\\AVR Tools\\STK500\\Stk500.exe" -dATMega128 -ccom3 -dATmega128 -FD9EF -FD9EF -EFF -GFF
STK500 command line programmer, v 2.3 Atmel Corp (C) 2004-2009.
Could not connect to STK500 v2 on com3
Done: there are error(s). Exit code: 1. Sat Jun 18 21:02:52 2011
뭐가 잘 못 된걸까요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
USBISP를 사용중이신가 본데요. 현재 COM3에서 USBISP가 검출되지 않는 것 같습니다.
우선, 설치한 USBISP가 system에서 장치관리자의 COM 포트가 3로 잡혀 있는 지 확인하시기 바랍니다.
본사의 USBISP 라면, 자료실에서 USBISP 사용자 메뉴얼을 읽어가면서 확인하여 주시기 바랍니다.
수고하세요.
>C:\\iccv7avr\\bin\\imakew -f LEDSHIFT1.mak
> iccavr -o LEDSHIFT1 -g -nb:42 -e:0x20000 -ucrtatmega.o -bfunc_lit:0x8c.0x1000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:30 -beeprom:0.4096 -fihx_coff -S2 @LEDSHIFT1.lk -lcatm128
> ROM 0% full. 268 out of 131072 bytes used.
> RAM 0 bytes used (does not include stack usage).
>Done. Sat Jun 18 21:02:51 2011
>"C:\\Program Files\\Atmel\\AVR Tools\\STK500\\Stk500.exe" -dATMega128 -ccom3 -dATmega128 -FD9EF -FD9EF -EFF -GFF
>STK500 command line programmer, v 2.3 Atmel Corp (C) 2004-2009.
>
>Could not connect to STK500 v2 on com3
>Done: there are error(s). Exit code: 1. Sat Jun 18 21:02:52 2011
>
>뭐가 잘 못 된걸까요?
|
||||
| 6429 | 답변완료코딩을 했는데 실행이 잘 되지 않습니다..ㅜ | 이제환 | 2011-06-18 | 1,453 |
|
atmega128에 gps센서를 연결해서 하이퍼통신에서 데이터 값을 받을려고합니다.
그래서 첨부한 파일과 같이 소스를 작성해봤는데, 실행이 되지 않습니다.
뉴티씨에 올라와있는데 자료들을 수집해서 작성하였습니다.
uart1에 gps를 연결하였습니다.
그래서 gps값을 UDR1에서 받을려고 합니다.
이 UDR1값을 메인함수에서 출력받고싶습니다. 도와주세요..ㅜ
관리자 답변
안녕하세요? 고객님,
본사에서 코드 수정을 도와드리지 못함을 양해하여 주시기 바랍니다.
본 Q&A는 제품의 서포트 목적이지만, 코드 수정까지 도와드리는 것은 범위를 벗어남을 알아 주시면 감사하겠습니다.
AVR Studio + WINAVR로 짜고 계신 것 같아서, 그 환경에서 scanf로 데이터 받는 것을 예제로 알려드립니다.
그런데, GPS 데이터 받을 때는 %s로 받으면 한 번에 받아지고 좋습니다. 참고 바랍니다.
그렇게 하면 간단하게 받을 수 있고요. GPS 파싱 관련 소스에서 데이터 parsing(풀어서 분석)하는 부분을 참고하시면 좋겠습니다.
우선, scanf 부분을 UART1로 옮기시구요. 수신이 잘 되는 지 UART0로 뿌려서 컴퓨터 터미널로 확인한 다음
잘 수신 되면, 파싱 쪽으로 가보세요.
- ATMEGA128에서 GPS 파싱 관련 소스(코드비전) -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=gps&select_arrange=headnum&desc=asc&no=408
- AVR Studio+WINAVR에서 scanf 소스 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=scanf&select_arrange=headnum&desc=asc&no=336
수고하세요.
>atmega128에 gps센서를 연결해서 하이퍼통신에서 데이터 값을 받을려고합니다.
>그래서 첨부한 파일과 같이 소스를 작성해봤는데, 실행이 되지 않습니다.
>뉴티씨에 올라와있는데 자료들을 수집해서 작성하였습니다.
>uart1에 gps를 연결하였습니다.
>그래서 gps값을 UDR1에서 받을려고 합니다.
>이 UDR1값을 메인함수에서 출력받고싶습니다. 도와주세요..ㅜ
|
||||
