;/*===========================================================================================
;Project : ½ºÅ×ÇÎ ¸ðÅÍ 1»ó ¿©ÀÚ ±¸µ¿ ¹æ½ÄÀ¸·Î ±¸µ¿ ÇÏ±â
;Date    : 2011-07-28
;Author  : Kyung Nam Lee
;Company : LKEMBEDDED
;Compiler: CodevisionAVR + AVRStudio
;Comment : ½ºÅ×ÇÎ ¸ðÅÍ Á¤È¸Àü ¹× ¿ªÈ¸Àü ¿¹Á¦¼Ò½º
;
;¡Ø¡ØÁÖÀÇ»çÇ×¡Ø¡Ø
;10P ÇÃ·§ÄÉÀÌºí ¿¬°á½Ã ¾Æ·¡¿Í °°ÀÌ ¿¬°áÇØÁÖ¼¼¿ä!
;ATmega128-C È®ÀåÇü °³¹ßº¸µå 10Pin BoxÄ¿³ØÅÍ(PORTC) <-------------> ½ºÅ×ÇÎ¸ðÅÍ ¸ðµâ - 10Pin BoxÄ¿³ØÅÍ(PORT)
;===========================================================================================*/
;
;#include <mega2560.h>
;PCODE: $00000000 VOL: 0
	#ifndef __SLEEP_DEFINED__
;PCODE: $00000001 VOL: 0
	#define __SLEEP_DEFINED__
;PCODE: $00000002 VOL: 0
	.EQU __se_bit=0x01
;PCODE: $00000003 VOL: 0
	.EQU __sm_mask=0x0E
;PCODE: $00000004 VOL: 0
	.EQU __sm_powerdown=0x04
;PCODE: $00000005 VOL: 0
	.EQU __sm_powersave=0x06
;PCODE: $00000006 VOL: 0
	.EQU __sm_standby=0x0C
;PCODE: $00000007 VOL: 0
	.EQU __sm_ext_standby=0x0E
;PCODE: $00000008 VOL: 0
	.EQU __sm_adc_noise_red=0x02
;PCODE: $00000009 VOL: 0
	.SET power_ctrl_reg=smcr
;PCODE: $0000000A VOL: 0
	#endif
;PCODE: $0000000B VOL: 0
;PCODE: $0000000C VOL: 0
;#include <delay.h>
;char cw[4]={0x11,0x44,0x22,0x88};

	.DSEG
;char ccw[4]={0x88,0x22,0x44,0x11};
;bit Flag;
;int Dir;
;int Pulse_cnt;
;// Timer 0 overflow interrupt service routine
;interrupt [TIM0_OVF] void timer0_ovf_isr(void)
; 0000 0017 {

	.CSEG
;PCODE: $0000000D VOL: 0
;PCODE: $0000000E VOL: 0
; 0000 0018 
; 0000 0019     static int cnt,cnt2=0;
; 0000 001A     cnt++;cnt2++;
;PCODE: $0000000F VOL: 0
;PCODE: $00000010 VOL: 0
;PCODE: $00000011 VOL: 0
;PCODE: $00000012 VOL: 0
;PCODE: $00000013 VOL: 0
;PCODE: $00000014 VOL: 0
;PCODE: $00000015 VOL: 0
;PCODE: $00000016 VOL: 0
; 0000 001B     if(cnt==2)//2ms¸¶´Ù
;PCODE: $00000017 VOL: 0
;PCODE: $00000018 VOL: 0
;PCODE: $00000019 VOL: 0
; 0000 001C     {
; 0000 001D         Pulse_cnt++; // Pulse Count!
;PCODE: $0000001A VOL: 0
;PCODE: $0000001B VOL: 0
;PCODE: $0000001C VOL: 0
; 0000 001E         if(Pulse_cnt==4)
;PCODE: $0000001D VOL: 0
;PCODE: $0000001E VOL: 0
;PCODE: $0000001F VOL: 0
; 0000 001F         {
; 0000 0020         Pulse_cnt=0;
;PCODE: $00000020 VOL: 0
; 0000 0021         }
; 0000 0022         cnt=0;
;PCODE: $00000021 VOL: 0
;PCODE: $00000022 VOL: 0
;PCODE: $00000023 VOL: 0
; 0000 0023     }
; 0000 0024     if(cnt2==3000)
;PCODE: $00000024 VOL: 0
;PCODE: $00000025 VOL: 0
;PCODE: $00000026 VOL: 0
;PCODE: $00000027 VOL: 0
; 0000 0025     {
; 0000 0026 		Dir^=1;
;PCODE: $00000028 VOL: 0
;PCODE: $00000029 VOL: 0
;PCODE: $0000002A VOL: 0
; 0000 0027         cnt2=0;
;PCODE: $0000002B VOL: 0
;PCODE: $0000002C VOL: 0
; 0000 0028     }
; 0000 0029     TCNT0+=0x06;
;PCODE: $0000002D VOL: 0
;PCODE: $0000002E VOL: 0
;PCODE: $0000002F VOL: 0
;PCODE: $00000030 VOL: 0
; 0000 002A }
;PCODE: $00000031 VOL: 0
;PCODE: $00000032 VOL: 0
;PCODE: $00000033 VOL: 0
;
;// Declare your global variables here
;
;void main(void)
; 0000 002F {
;PCODE: $00000034 VOL: 0
; 0000 0030 	int i=0;  //»ç¿ëÀÚ º¯¼ö clear
; 0000 0031 
; 0000 0032 	PORTC=0x00; // PORTC 0~7ÇÉ Ãâ·ÂÀ¸·Î ¼³Á¤
;	i -> R16,R17
;PCODE: $00000035 VOL: 0
;PCODE: $00000036 VOL: 0
;PCODE: $00000037 VOL: 0
;PCODE: $00000038 VOL: 0
; 0000 0033 	DDRC=0xff;
;PCODE: $00000039 VOL: 0
;PCODE: $0000003A VOL: 0
; 0000 0034 
; 0000 0035     TCCR0A=0x00;//Normal Mode Operation(Overflow Interrupt Enable)
;PCODE: $0000003B VOL: 0
;PCODE: $0000003C VOL: 0
; 0000 0036     TCCR0B=0x03;//64Prescale Select
;PCODE: $0000003D VOL: 0
;PCODE: $0000003E VOL: 0
; 0000 0037     TCNT0=0x06;// Timer/Count Register initialization
;PCODE: $0000003F VOL: 0
;PCODE: $00000040 VOL: 0
; 0000 0038 
; 0000 0039     TIMSK0=0x01;// Timer(s)/Counter(s) Interrupt(s) initialization
;PCODE: $00000041 VOL: 0
;PCODE: $00000042 VOL: 0
; 0000 003A     #asm("sei")// Global enable interrupts
;PCODE: $00000043 VOL: 0
	sei
;PCODE: $00000044 VOL: 0
; 0000 003B 
; 0000 003C while (1) //endless Loop
;PCODE: $00000045 VOL: 0
; 0000 003D       {
; 0000 003E 	 switch(Dir)
;PCODE: $00000046 VOL: 0
; 0000 003F      {
; 0000 0040      case 0:PORTC=ccw[Pulse_cnt];break; //forward direction
;PCODE: $00000047 VOL: 0
;PCODE: $00000048 VOL: 0
;PCODE: $00000049 VOL: 0
;PCODE: $0000004A VOL: 0
;PCODE: $0000004B VOL: 0
;PCODE: $0000004C VOL: 0
;PCODE: $0000004D VOL: 0
; 0000 0041      case 1:PORTC=cw[Pulse_cnt];break; //reverse direction
;PCODE: $0000004E VOL: 0
;PCODE: $0000004F VOL: 0
;PCODE: $00000050 VOL: 0
;PCODE: $00000051 VOL: 0
;PCODE: $00000052 VOL: 0
;PCODE: $00000053 VOL: 0
;PCODE: $00000054 VOL: 0
;PCODE: $00000055 VOL: 0
; 0000 0042      }
;PCODE: $00000056 VOL: 0
; 0000 0043   }
;PCODE: $00000057 VOL: 0
;PCODE: $00000058 VOL: 0
; 0000 0044 }
;PCODE: $00000059 VOL: 0
;PCODE: $0000005A VOL: 0
;PCODE: $0000005B VOL: 0
