CodeVisionAVR C ÄÄÆÄÀÏ·¯
Á¦1Àå.
CodeVisionAVR ¼³Ä¡ ¹× »ç¿ë ¹æ¹ý
(1) CodeVisionAVR C ÄÄÆÄÀÏ·¯ Ư¡
CodeVisionAVR C ÄÄÆÄÀÏ·¯´Â °¡°Ý¿¡ ºñÇØ ¼º´ÉÀÌ ¿ì¼öÇÑ ÄÄÆÄÀÏ·¯·Î
´ÙÀ½°ú °°Àº Ư¡ÀÌ ÀÖ´Ù
- Æí¸®ÇÑ ÅëÇÕ È¯°æ : ¼Ò½º ¿¡µðÅÍ, ÄÄÆÄÀÏ/¸µÅ©, Flash-ROM/EEPROM ´Ù¿î·Îµå, Åë½Å ÇÁ ·Î±×·¥
µîÀÌ ÇÔ²² Á¦°ø µÊ.
- ÀÚµ¿ ¼Ò½º ÄÚµå »ý¼º ±â´É(CodeWizardAVR) *1
- dzºÎÇÑ ¶óÀ̺귯¸® ÇÔ¼ö Á¦°ø : Åë½Å(UART), LCDÇ¥½Ã, ¿Âµµ, ½Ã°è, A/D ¼ÒÀÚÇÔ¼ö
Á¦°ø.
- Æí¸®ÇÑ FLASH, EEPROM, SRAM º¯¼ö °ü¸®
- Æ÷Æ® ¹× º¯¼öÀÇ ºñÆ® Á¦¾î ±â´É *1
- ÀÎ ¶óÀÎ ¾î¼À ±â´É Á¦°ø *1
- Àú °¡°Ý. (20 ¸¸¿ø ´ë)
- ¹«·á Æò°¡ ¹öÀü »ç¿ë °¡´É(¿ë·® Á¦ÇÑ ¹× ÀϺΠÇÔ¼ö »ç¿ë Á¦ÇÑ)
* IAR C ÄÄÆÄÀÏ·¯¿¡´Â ¾øÀ½(¶Ç´Â ºÒÆí)
(2). ȸ·Î ¼³Ä¡
Áغñ¹°
- ÄÄÇ»ÅÍ(PC)
- AVR_Å×½ºÆ® º¸µå
- AVR ´Ù¿î·Îµå Æ÷µå(POD)
- Àü¿ø ÀåÄ¡ : 5V Àü¾Ð Ãâ·Â
- CodeVisionAVR C ÄÄÆÄÀÏ·¯
- ICE200 ¿¡¹Ä·¹ÀÌÅÍ, AVR Studio S/W : ¿É¼Ç ¿¡¹Ä·¹ÀÌ¼Ç ½Ã ÇÊ¿ä
¤ý PCB ±âÆÇ ºÎǰ ¹èÄ¡µµ
¨±
12VÀü¿ø ¨²
Servo¸ðÅÍ Çì´õÇÉ
¨³ Lcd
Ç¥½Ã ¨´
12VÀü¿ø ÀÔ·Â
¨µ
½ºÅܸðÅÍ Ä¿³ØÅÍ
¨¶
DC¸ðÅÍ Ä¿³ØÅÍ
¨·
¸ðÅÍ Àü¿ø ¨¸
ISPÄÉÀ̺í Çì´õÇÉ
¨¹
AT90S2313 20ÇÉ
¼ÒÄÏ ¨º
RS-232 Á¢¼Ó Çì´õÇÉ
¨» LedÇ¥½Ã
¨¼
°¡º¯ÀúÇ×
¨½
Á¡ÆÛ ¨¾
Key ÀÔ·Â
¨¿
7-¼¼±×¸ÕÆ® Ç¥½Ã
¨À
74HC14 IC
¨Á
DIP½ºÀ§Ä¡

¤ý
¼³Ä¡»çÁø(ISPÄÉÀ̺í)

¤ý
¼³Ä¡ »çÁø (ICE200 ¿¡¹Ä·¹ÀÌÅÍ
Á¢¼Ó)
¨±
ICE200
º»Ã¼ ¨²
ICE200 POD

ȸ·Î ¿¬°áµµ
ISP Ä¿³ØÅÍ(ISP_20P)
6ÇÉÀ¸·Î µÇ¾î Àִµ¥, Àü¿ø¼± 2°³¿Í ½ÅÈ£¼± 4°³·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
AVRÀÇ ³»ºÎ FLASH³ª EEPROM ³»¿ëÀ» ´Ù¿î ·Îµå Çϴµ¥ »ç¿ëÇÑ´Ù.
Á¢¼Ó ¹æÇâ(1¹ø Àû»ö ½ÅÈ£)¿¡ À¯ÀÇ ÇÑ´Ù.
Æ÷Æ® »ç¿ë
AT90S2313ÀÇ °æ¿ì BÆ÷Æ®´Â 8°³ DÆ÷Æ®´Â 7°³ÀÇ Æ÷Æ®¸¦ »ç¿ëÇÒ ¼ö Àִµ¥, ISP¿¡ »ç¿ëµÇ´Â ½ÅÈ£µµ ÀϹÝ
Æ÷Æ®·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ü ´Ù¿î ·Îµå ½Ã¿¡ ½ÅÈ£¿¡ ½ÅÈ£ Ãæµ¹ÀÌ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
µ¿ÀÛ Å¬·°:
AT90S2313-10PIÀÇ °æ¿ì 10MHz±îÁö »ç¿ëÀÌ °¡´ÉÇϸç 4MHz ¹ßÁøÀÚ°¡ ºÎÂøµÇ¾î ÀÖÀ½
(3) CodeVisionAVR
C ÄÄÆÄÀÏ·¯ »ç¿ë ¹æ¹ý
Led¸¦ ÄÑ´Â ½ÇÇèÀ» ÇÏ¸é¼ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ º¸ÀÚ.
1) ÇÁ·Î±×·¥ ½ÇÇà

2)ÇÁ·Î±×·¥
½ÇÇà ȸé

3)FileÀ»
Ŭ¸¯ÇÑÈÄ New Ç׸ñÀ» Ŭ¸¯ÇÑ´Ù.

4)
ÀÚµ¿ ¼Ò½º ÄÚµå »ý¼º ±â´ÉÀ» »ç¿ëÇÒÁö¸¦
¹¯´Â´Ù
Yes:
ÇÁ·Î±×·¥ Àüü ÄÚµåÀÇ °ñ°ÝÀ» »ý¼º½ÃŲ´Ù.
No:
»ç¿ëÀÚ°¡ óÀ½ºÎÅÍ ÀÛ¼ºÇÑ´Ù.
ÀÌ
¿¹Á¦¿¡¼´Â ÀÚµ¿ »ý¼º ±â´ÉÀ» »ç¿ëÇØ
º»´Ù. ¡æ Yes ¼±ÅÃ

5)
»ç¿ëÇÏ´Â AVR Chip°ú µ¿ÀÛ Å¬·°À»
¼±ÅÃÇÑ´Ù.

6)
Port¸¦ °áÁ¤ÇÑ´Ù.
¨±
FileÀ» Ŭ¸¯
¡æ Generate, Save and Exit ½ÇÇà½ÃŲ´Ù.
¨²
Æ÷Æ®B¸¦ Ãâ·ÂÀ¸·Î
ÇÏ¿© LED¸¦ Ä«¿îÆ® ONÇÏ´Â ÇÁ·Î±×·¥À»
ÀÛ¼ºÇϹǷΠ¹æÇâÀ» Ãâ·Â(O)À¸·Î ¼³Á¤ÇÑ´Ù.

7)
¼Ò½º ÇÁ·Î±×·¥ »ý¼º



Áö±Ý
±îÁö ½ÇÇàÀ» ½ÃÄ×À¸¸é ¼Ò½º ÆÄÀÏÀÌ
»ý¼ºµÇ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¼Ò½ºÆÄÀÏÀ» º¸¸é ´ÙÀ½°ú
°°´Ù.
/*********************************************
This program was produced by
the
CodeWizardAVR V1.0.1.5g Evaluation
Automatic Program Generator
Copyright 1998-2001
Pavel Haiduc, HP InfoTech S.R.L.
http://infotech.ir.ro
e-mail:dhptechn@ir.ro , hpinfotech@mail.com
Project :
Version :
Date : 2001-03-30
Author : Unknown
Company :
Comments:
Chip type :
AT90S2313
Clock frequency :
4.000000 MHz
Memory model :
Tiny
Internal SRAM size : 128
External SRAM size : 0
Data Stack size :
32
*********************************************/
#include <90s2313.h>
// Declare your global variables
here
void main(void)
{
// Declare your local variables
here
// Input/Output Ports initialization
// Port B
DDRB=0xFF;
PORTB=0xFF;
// Port D
DDRD=0x00;
PORTD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Output Compare
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Output Compare
// OC1 output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1H=0x00;
OCR1L=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s)
initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture
by Timer/Counter 1: Off
ACSR=0x80;
while (1)
{
//
Place your code here
};
}
Áö±Ý ³ªÅ¸³½ ¼Ò½º´Â codeVisionAVR¿¡¼
ÀÚüÀûÀ¸·Î »ý¼º ½ÃÄÑÁØ °ÍÀ̰í led¸¦
¼øÂ÷ÀûÀ¸·Î µ¿ÀÛ ½Ã۱â À§ÇÑ ÇÁ·Î±×·¥Àº
´ÙÀ½°ú °°´Ù.
#include <90s2313.h>
// Declare your global variables
here
char m_cnt=0; //
¹ÙÀÌÆ® Å©±âÀÇ m_cnt ¿ÜºÎ º¯¼ö ¼±¾ð
void main(void)
{
// Declare your local variables
here
long i; //
4¹ÙÀÌÆ® Å©±âÀÇ i ÀÚµ¿ º¯¼ö ¼±¾ð
// Input/Output Ports initialization
// Port B
DDRB=0xFF; //
PORTB·Î Ãâ·Â ¹æÇâ °áÁ¤
PORTB=0xFF; //
PORTBÀÇ ÃʱâÄ¡
// Port D
DDRD=0x00;
PORTD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Output Compare
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Output Compare
// OC1 output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1H=0x00;
OCR1L=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture
by Timer/Counter 1: Off
ACSR=0x80;
while (1)
{
//
Place your code here
m_cnt++;
//
m_cnt º¯¼ö 1 ¾¿ Áõ°¡
PORTB
= ~m_cnt; // ¹ÝÀü(1ÀÇ
º¸¼ö)ÇÏ¿© Æ÷Æ® B·Î Ãâ·Â ÇÔ
for(i=0;i<1000;i++);
// µô·¹ÀÌ ·çƾ
}
}
¹ÝÀü(1ÀÇ º¸¼ö)ÇÏ¿© Æ÷Æ®
B·Î Ãâ·ÂÇÏ´Â ÀÌÀ¯´Â LED°¡ 0ÀÏ ¶§
ONÀÌ µÇ¹Ç·Î, For ·çƾÀº ´Ü¼ø Áö¿¬
·çƾÀ¸·Î LED Áõ°¡ »óŸ¦ À°¾ÈÀ¸·Î
È®ÀÎ ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ ÀÌ´Ù.
8)
ÄÄÆÄÀÏ Çϱâ
¨±
Project¸¦ Ŭ¸¯
ÇÑ ÈÄ Compile FileÀ» ¼±ÅÃÇÑ´Ù.
¨²
¾ÆÀÌÄÜ Å¬¸¯

±×·¯¸é
´ÙÀ½°ú °°Àº âÀÌ ¶ã °ÍÀÌ´Ù. ¡æ ÄÄÆÄÀÏ
Á¤º¸ Ç¥½Ã

9)
¸µÅ©(¸ÞÀÌÅ©) Çϱâ
Project¸¦
Ŭ¸¯ ÇÑ ÈÄ Make¸¦ Ŭ¸¯ÇÑ´Ù.
¨±
Ŭ¸¯ ÈÄ Make
¼±Åà ¨²
¾ÆÀÌÄÜ Å¬¸¯

±×·¯¸é
´ÙÀ½°ú °°Àº âÀÌ ¶ã °ÍÀÌ´Ù.

10)
Ç÷¡½Ã ·Ò¿¡ ´Ù¿î·Îµå Çϱâ
¨±
ToolÀ» Ŭ¸¯
ÇÑ ÈÄ Chip programmerÀ» ¼±ÅÃÇÑ´Ù
¨²
¾ÆÀÌÄÜ Å¬¸¯

CodeVisionAVR
Chip Programmer âÀÌ ³ªÅ¸³´Ù.
¨±
FileÀ» Ŭ¸¯ÇÏ¿© LoadÆÄÀÏÀ»
ºÒ·¯¿Â´Ù.
¨² ProgramÀ»
Ŭ¸¯ ÇÏ¿© Erase Chip ¹× FlashÀ»
°áÁ¤ÇÑ´Ù.

FileÀ»
Ŭ¸¯ ÇÑ ÈÄ LoadÆÄÀÏÀ» ºÒ·¯¿À¸é ´ÙÀ½°ú
°°Àº âÀÌ ¶á´Ù.


11)
ICE200À» ÀÌ¿ë ÇÏ¿© AVR Studio¸¦
»ç¿ëÇϱâ
¡ß
AVR StudioƯ¡
AVR
Studio´Â Atmel»ç¿¡¼ ¹«·á·Î ´Ù¿î
¹Þ¾Æ »ç¿ëÇÒ ¼ö ÀÖ´Â °³¹ß ȯ°æÀ¸·Î
½Ã¹Ä·¹ÀÌ¼Ç °ú ´Ù¾çÇÑ ¿¡¹Ä·¹ÀÌÅ͸¦
Áö¿øÇϴµ¥ ¿©±â¼´Â ICE200°ú ¿¬°á
»ç¿ëÀ» Áß½ÉÀ¸·Î »ìÆì º»´Ù.
Ư¡:
Asm/C ¼Ò½º ·¹º§ µð¹ö±ë
°¡´É.(Asm/C Àýȯ »ç¿ë °¡´É)
Single
Step, Break Point µ¿ÀÛ »ç¿ë °¡´É.
ÇÁ·Î±×·¥,
µ¥ÀÌÅÍ, I/O ¿µ¿ª µ¥ÀÌÅÍ °üÂû ¹×
º¯°æ °¡´É.
°¢Á¾
·¹Áö½ºÅÍ ¸ð´ÏÅÍ ¹× º¯°æ °¡´É.
°¢Á¾
º¯¼ö °ª ¸ð´ÏÅÍ ¹× º¯°æ °¡´É.
½Ã¹Ä·¹ÀÌÅÍ
¹× ¾Ö¹Ä·¹ÀÌÅÍ·Î »ç¿ë.
¸ÕÀú
AVR Studio¸¦ ¼¼ÆÃ ÇÑ ÈÄ ¹ÙÅÁȸ鿡¼
¾ÆÀÌÄÜÀ» Ŭ¸¯ Çϰųª, CodeVisionAVR¿¡¼
ToolÀ» Ŭ¸¯ ¡æ DebuggerÀ» ¼±ÅÃÇÑ´Ù.
¨±
ToolÀ» Ŭ¸¯
¡æ DebuggerÀ» ¼±ÅÃ
¨²
¾ÆÀÌÄÜ Å¬¸¯

12)
½ÇÇàȸé

±×·±µ¥
CodeVisionAVR ¸µÅ© µ¿ÀÛ¿¡¼ ±âº»ÀûÀ¸·Î
»ý¼ºµÇ´Â ÆÄÀÏÀº ÀÎÅÚ HEX ÆÄÀÏÀÌ
¾Æ´Ï¹Ç·Î Ãâ·Â ÆÄÀÏ Æ÷¸ËÀ» Intel
HEX·Î ¼³Á¤ÇÏ¿© »ý¼ºÇØ ÁØ´Ù.
¨±
Project¸¦ Ŭ¸¯
¡æ Configure¸¦ ½ÇÇà
¨² C
CompilerÀ» Ŭ¸¯


±×·¯¸é
´ÙÀ½°ú °Àº âÀÌ ¶á´Ù.
¨± Ĩ
Á¾·ù ¹× µ¿ÀÛ ¼Óµµ
¨²
½ºÅà ¿µ¿ª: ÀÚµ¿
º¯¼ö »ç¿ë·®À»°í·ÁÇÏ¿© ÀûÀýÈ÷ ¼³Á¤
½ºÅÃ
¿µ¿ªÀ» ¸¹ÀÌ ÀâÀ¸¸é ¿ÜºÎ º¯¼ö ¿µ¿ªÀÌ
Àû¾î Áü
¨³
³»ºÎ RAM ¿µ¿ª:
Chip Á¾·ù¿¡ µû¶ó ´Ù¸§
¨´
ºñÆ® º¯¼ö¿µ¿ª
ÃÖ´ë 112ºñÆ®
¨µ
Intel HEX·Î
¼³Á¤
¨¶
»ý¼º ÄÚµå ÃÖÀûÈ
¹æ¹ý ¼±ÅÃ

¡ß
½ÇÇàȸé

¡ß
Intel.HEX ÆÄÀÏ

¡ß
¸Þ¸ð¸® ³»¿ë
¨±
Eeprom, Program
Memory, Data¸¦ °áÁ¤

°¢Á¾
CPU ÀÚ¿ø °üÂû °¡´É

13)
Á÷·Ä Åë½ÅÇü ISP POD »ç¿ë ¹æ¹ý
Á÷·Ä
Åë½Å Æ÷Æ®Çü ISP ÇÁ·Î±×·¥Àº AVRprog131.exeÀÇ
º°µµÀÇ ÇÁ·Î±×·¥À¸·Îµµ ½ÇÇàÀÌ µÇ´Âµ¥,
AVR StudioÀÇ Tools=>AVR ProgÀÇ
¸Þ´º¿¡µµ Æ÷ÇԵǾî ÀÖ´Ù.

´ÙÀ½°ú
°°Àº âÀÌ ¶á´Ù.
¨±
ÆÄÀÏ ¼±ÅýÃ
»ç¿ë
¨²
ÀÎÅÚ Hex ÇüÅÂÀÇ ·Îµå
ÇÁ·Î±×·¥ ÆÄÀϸí
¨³
Ç÷¡½¬ ·Ò ÇÁ·Î±×·¥
¨´
Eeprom ÇÁ·Î±×·¥

14)
AVRCCC¸¦ ÀÌ¿ëÇÏ¿© Ç÷¡½¬ ·Ò¿¡ ´Ù¿îÇϱâ
¨±
File À̳ª ¾ÆÀÌÄÜÀ»
Ŭ¸¯ÇÏ¿© Led. bin ÆÄÀÏÀ» ºÒ·¯¿Â´Ù
¨²
Check ¹öư Ŭ¸¯
¨³
WFlash
¹öưÀ» Ŭ¸¯


Verity
¹öư Ŭ¸¯ Button
7¹öư Ŭ¸¯

ÀÌ
°úÁ¤ÀÌ ³¡³ª¸é AT90S2313ÀÇ Ç÷¡½¬
¸Þ¸ð¸®¿¡ ´Ù¿î ·Îµå°¡ ³¡³´Ù.
±×·¯³ª
CodeVisionAVR ¿¡´Â Bin ÆÄÀÏÀÌ »ý¼ºÀÌ
µÇÁö ¾Ê±â ¶§¹®¿¡ hex ÆÄÀÏÀ» bin
ÆÄÀÏ·Î ¹Ù²Ù´Â ¼ÒÇÁÆ®¿þ¾î°¡ ÇÊ¿äÇϹǷÎ
ÇÊ¿äÇÑ ºÐÀº ÀÚ·á½Ç¿¡ ´Ù¿î·Îµå¹Þ¾Æ
»ç¿ëÇÏ¸é µÈ´Ù.
|