Cleanup, reorganization

This commit is contained in:
2014-12-23 01:12:21 +01:00
parent e78d91a900
commit dbdcefea38
223 changed files with 1260 additions and 660 deletions
@@ -0,0 +1,2 @@
@ECHO OFF
"C:\Program Files\Atmel\AVR Tools\AvrAssembler2\avrasm2.exe" -S "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\labels.tmp" -fI -W+ie -o "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.hex" -d "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.obj" -e "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.eep" -m "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.map" "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm"
@@ -0,0 +1 @@
<AVRStudio><MANAGEMENT><ProjectName>efekty_LED</ProjectName><Created>06-Sep-2007 20:57:13</Created><LastEdit>08-Sep-2007 21:56:18</LastEdit><ICON>208</ICON><ProjectType>0</ProjectType><Created>06-Sep-2007 20:57:13</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>Atmel AVR Assembler</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>efekty_LED.obj</ObjectFile><EntryFile>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</EntryFile><SaveFolder>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega16</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><modules><module></module></modules><Triggers></Triggers></Debugger><AvrAssembler><Folder>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\</Folder><RelPath>efekty_LED.asm</RelPath><EntryFile>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</EntryFile><IncludePath>C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes</IncludePath><V2IncludePath></V2IncludePath><V2Parameters></V2Parameters><FileType>I</FileType><ObjectName>efekty_LED</ObjectName><Wrap>0</Wrap><ErrorAsWarning>0</ErrorAsWarning><MapFile>1</MapFile><ListFile>0</ListFile><Version1>0</Version1><PreCompile></PreCompile><PostCompile></PostCompile><SourceFiles>,</SourceFiles></AvrAssembler><ProjectIncludeDirs><Dirs><Dir>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes</Dir></Dirs></ProjectIncludeDirs><ProjectFiles><Files><Name>\efekty_LED.asm</Name><Name>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc</Name></Files></ProjectFiles><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>efekty_LED2</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13def.inc</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc</FileName><Status>257</Status></File00003><File00004><FileId>00004</FileId><FileName>efekty_LED.asm</FileName><Status>257</Status></File00004><File00005><FileId>00005</FileId><FileName>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\_cekani.inc</FileName><Status>259</Status></File00005></Files><Workspace><File00000><Position>193 71 1022 718</Position><LineCol>0 0</LineCol></File00000><File00001><Position>14 146 677 456</Position><LineCol>0 0</LineCol></File00001><File00002><Position>235 132 898 442</Position><LineCol>0 0</LineCol></File00002><File00003><Position>191 67 1020 722</Position><LineCol>0 0</LineCol></File00003><File00004><Position>197 71 1026 566</Position><LineCol>78 6</LineCol><State>Maximized</State></File00004><File00005><Position>311 204 978 518</Position><LineCol>12 15</LineCol></File00005></Workspace><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
@@ -0,0 +1,87 @@
;pokus
.include "m16def.inc"
.def POM=r16
.def A=r17
.def B=r18
.def C=r19
.def D=r20
.cseg
.org 0x0000 ;zacatek kodu
RJMP RESET ;skok na start po resetu
.org 0x0010 ;zacatek vlastniho programu
RESET:
LDI R16,0x5F ;nastavi stack pointer na 0x045F
OUT SPL,R16 ;coz je konec SRAM u ATmegy16
LDI R16,0x04
OUT SPH,R16
LDI POM,0xFF ;nastavi vsechny porty jako vystupni
OUT DDRA,POM
OUT DDRB,POM
OUT DDRC,POM
OUT DDRD,POM
LDI A,0b01110000 ;hodnoty portu A az D
LDI B,0b10001000
LDI C,0b10001000
LDI D,0b00000111
LOOP:
CLC
ROL A ;preroluj A registr
BRCC ACC ;pokud je C=0, skoc na ACC (A Carry Clear)
SBR A,0b00000001 ;nastav prvni bit v A na 1
ACC: OUT PORTA,A ;output A do PORTA
CLC
ROL B ;preroluj B registr - totez co u A reg.
BRCC BCC
SBR B,0b00000001
BCC: OUT PORTB,B
CLC
ROL C ;preroluj C registr - totez co u A reg.
BRCC CCC
SBR C,0b00000001
CCC: OUT PORTC,C
CLC
ROL D ;preroluj D registr - totez co u A reg.
BRCC DCC
SBR D,0b00000001
DCC: OUT PORTD,D
RCALL CEKANI
RJMP LOOP ;jdi na LOOP
CEKANI:
PUSH r18 ;ulozit pouzivane registry do STACKU
PUSH r17
PUSH r16
LDI r16, 40
L1: DEC r16
LDI r17, 40
L2: DEC r17
LDI r18, 40
L3: DEC r18
CPI r18, 0
BRNE L3
CPI r17, 0
BRNE L2
CPI r16, 0
BRNE L1
POP r16 ;nacist puvodni obsah registru ze STACKU
POP r17
POP r18
RET ;navrat do hlavniho programu
@@ -0,0 +1,621 @@
AVRASM ver. 2.1.12 C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm Sat Sep 08 21:56:17 2007
EQU SIGNATURE_000 0000001e
EQU SIGNATURE_001 00000094
EQU SIGNATURE_002 00000003
EQU SREG 0000003f
EQU SPL 0000003d
EQU SPH 0000003e
EQU OCR0 0000003c
EQU GICR 0000003b
EQU GIFR 0000003a
EQU TIMSK 00000039
EQU TIFR 00000038
EQU SPMCSR 00000037
EQU TWCR 00000036
EQU MCUCR 00000035
EQU MCUCSR 00000034
EQU TCCR0 00000033
EQU TCNT0 00000032
EQU OSCCAL 00000031
EQU OCDR 00000031
EQU SFIOR 00000030
EQU TCCR1A 0000002f
EQU TCCR1B 0000002e
EQU TCNT1L 0000002c
EQU TCNT1H 0000002d
EQU OCR1AL 0000002a
EQU OCR1AH 0000002b
EQU OCR1BL 00000028
EQU OCR1BH 00000029
EQU ICR1L 00000026
EQU ICR1H 00000027
EQU TCCR2 00000025
EQU TCNT2 00000024
EQU OCR2 00000023
EQU ASSR 00000022
EQU WDTCR 00000021
EQU UBRRH 00000020
EQU UCSRC 00000020
EQU EEARL 0000001e
EQU EEARH 0000001f
EQU EEDR 0000001d
EQU EECR 0000001c
EQU PORTA 0000001b
EQU DDRA 0000001a
EQU PINA 00000019
EQU PORTB 00000018
EQU DDRB 00000017
EQU PINB 00000016
EQU PORTC 00000015
EQU DDRC 00000014
EQU PINC 00000013
EQU PORTD 00000012
EQU DDRD 00000011
EQU PIND 00000010
EQU SPDR 0000000f
EQU SPSR 0000000e
EQU SPCR 0000000d
EQU UDR 0000000c
EQU UCSRA 0000000b
EQU UCSRB 0000000a
EQU UBRRL 00000009
EQU ACSR 00000008
EQU ADMUX 00000007
EQU ADCSRA 00000006
EQU ADCH 00000005
EQU ADCL 00000004
EQU TWDR 00000003
EQU TWAR 00000002
EQU TWSR 00000001
EQU TWBR 00000000
EQU CS00 00000000
EQU CS01 00000001
EQU CS02 00000002
EQU WGM01 00000003
EQU CTC0 00000003
EQU COM00 00000004
EQU COM01 00000005
EQU WGM00 00000006
EQU PWM0 00000006
EQU FOC0 00000007
EQU TCNT0_0 00000000
EQU TCNT0_1 00000001
EQU TCNT0_2 00000002
EQU TCNT0_3 00000003
EQU TCNT0_4 00000004
EQU TCNT0_5 00000005
EQU TCNT0_6 00000006
EQU TCNT0_7 00000007
EQU OCR0_0 00000000
EQU OCR0_1 00000001
EQU OCR0_2 00000002
EQU OCR0_3 00000003
EQU OCR0_4 00000004
EQU OCR0_5 00000005
EQU OCR0_6 00000006
EQU OCR0_7 00000007
EQU TOIE0 00000000
EQU OCIE0 00000001
EQU TOV0 00000000
EQU OCF0 00000001
EQU PSR10 00000000
EQU TOIE1 00000002
EQU OCIE1B 00000003
EQU OCIE1A 00000004
EQU TICIE1 00000005
EQU TOV1 00000002
EQU OCF1B 00000003
EQU OCF1A 00000004
EQU ICF1 00000005
EQU WGM10 00000000
EQU PWM10 00000000
EQU WGM11 00000001
EQU PWM11 00000001
EQU FOC1B 00000002
EQU FOC1A 00000003
EQU COM1B0 00000004
EQU COM1B1 00000005
EQU COM1A0 00000006
EQU COM1A1 00000007
EQU CS10 00000000
EQU CS11 00000001
EQU CS12 00000002
EQU WGM12 00000003
EQU CTC10 00000003
EQU CTC1 00000003
EQU WGM13 00000004
EQU CTC11 00000004
EQU ICES1 00000006
EQU ICNC1 00000007
EQU GIMSK 0000003b
EQU IVCE 00000000
EQU IVSEL 00000001
EQU INT2 00000005
EQU INT0 00000006
EQU INT1 00000007
EQU INTF2 00000005
EQU INTF0 00000006
EQU INTF1 00000007
EQU ISC00 00000000
EQU ISC01 00000001
EQU ISC10 00000002
EQU ISC11 00000003
EQU ISC2 00000006
EQU EEDR0 00000000
EQU EEDR1 00000001
EQU EEDR2 00000002
EQU EEDR3 00000003
EQU EEDR4 00000004
EQU EEDR5 00000005
EQU EEDR6 00000006
EQU EEDR7 00000007
EQU EERE 00000000
EQU EEWE 00000001
EQU EEMWE 00000002
EQU EEWEE 00000002
EQU EERIE 00000003
EQU SREG_C 00000000
EQU SREG_Z 00000001
EQU SREG_N 00000002
EQU SREG_V 00000003
EQU SREG_S 00000004
EQU SREG_H 00000005
EQU SREG_T 00000006
EQU SREG_I 00000007
EQU SM0 00000004
EQU SM1 00000005
EQU SE 00000006
EQU SM2 00000007
EQU MCUSR 00000034
EQU PORF 00000000
EQU EXTRF 00000001
EQU EXTREF 00000001
EQU BORF 00000002
EQU WDRF 00000003
EQU JTRF 00000004
EQU JTD 00000007
EQU CAL0 00000000
EQU CAL1 00000001
EQU CAL2 00000002
EQU CAL3 00000003
EQU CAL4 00000004
EQU CAL5 00000005
EQU CAL6 00000006
EQU CAL7 00000007
EQU PSR2 00000001
EQU PUD 00000002
EQU TOIE2 00000006
EQU OCIE2 00000007
EQU TOV2 00000006
EQU OCF2 00000007
EQU CS20 00000000
EQU CS21 00000001
EQU CS22 00000002
EQU WGM21 00000003
EQU CTC2 00000003
EQU COM20 00000004
EQU COM21 00000005
EQU WGM20 00000006
EQU PWM2 00000006
EQU FOC2 00000007
EQU TCNT2_0 00000000
EQU TCNT2_1 00000001
EQU TCNT2_2 00000002
EQU TCNT2_3 00000003
EQU TCNT2_4 00000004
EQU TCNT2_5 00000005
EQU TCNT2_6 00000006
EQU TCNT2_7 00000007
EQU OCR2_0 00000000
EQU OCR2_1 00000001
EQU OCR2_2 00000002
EQU OCR2_3 00000003
EQU OCR2_4 00000004
EQU OCR2_5 00000005
EQU OCR2_6 00000006
EQU OCR2_7 00000007
EQU TCR2UB 00000000
EQU OCR2UB 00000001
EQU TCN2UB 00000002
EQU AS2 00000003
EQU SPDR0 00000000
EQU SPDR1 00000001
EQU SPDR2 00000002
EQU SPDR3 00000003
EQU SPDR4 00000004
EQU SPDR5 00000005
EQU SPDR6 00000006
EQU SPDR7 00000007
EQU SPI2X 00000000
EQU WCOL 00000006
EQU SPIF 00000007
EQU SPR0 00000000
EQU SPR1 00000001
EQU CPHA 00000002
EQU CPOL 00000003
EQU MSTR 00000004
EQU DORD 00000005
EQU SPE 00000006
EQU SPIE 00000007
EQU UDR0 00000000
EQU UDR1 00000001
EQU UDR2 00000002
EQU UDR3 00000003
EQU UDR4 00000004
EQU UDR5 00000005
EQU UDR6 00000006
EQU UDR7 00000007
EQU USR 0000000b
EQU MPCM 00000000
EQU U2X 00000001
EQU UPE 00000002
EQU PE 00000002
EQU DOR 00000003
EQU FE 00000004
EQU UDRE 00000005
EQU TXC 00000006
EQU RXC 00000007
EQU UCR 0000000a
EQU TXB8 00000000
EQU RXB8 00000001
EQU UCSZ2 00000002
EQU CHR9 00000002
EQU TXEN 00000003
EQU RXEN 00000004
EQU UDRIE 00000005
EQU TXCIE 00000006
EQU RXCIE 00000007
EQU UCPOL 00000000
EQU UCSZ0 00000001
EQU UCSZ1 00000002
EQU USBS 00000003
EQU UPM0 00000004
EQU UPM1 00000005
EQU UMSEL 00000006
EQU URSEL 00000007
EQU UBRRHI 00000020
EQU I2BR 00000000
EQU TWBR0 00000000
EQU TWBR1 00000001
EQU TWBR2 00000002
EQU TWBR3 00000003
EQU TWBR4 00000004
EQU TWBR5 00000005
EQU TWBR6 00000006
EQU TWBR7 00000007
EQU I2CR 00000036
EQU TWIE 00000000
EQU I2IE 00000000
EQU TWEN 00000002
EQU I2EN 00000002
EQU ENI2C 00000002
EQU TWWC 00000003
EQU I2WC 00000003
EQU TWSTO 00000004
EQU I2STO 00000004
EQU TWSTA 00000005
EQU I2STA 00000005
EQU TWEA 00000006
EQU I2EA 00000006
EQU TWINT 00000007
EQU I2INT 00000007
EQU I2SR 00000001
EQU TWPS0 00000000
EQU TWS0 00000000
EQU I2GCE 00000000
EQU TWPS1 00000001
EQU TWS1 00000001
EQU TWS3 00000003
EQU I2S3 00000003
EQU TWS4 00000004
EQU I2S4 00000004
EQU TWS5 00000005
EQU I2S5 00000005
EQU TWS6 00000006
EQU I2S6 00000006
EQU TWS7 00000007
EQU I2S7 00000007
EQU I2DR 00000003
EQU TWD0 00000000
EQU TWD1 00000001
EQU TWD2 00000002
EQU TWD3 00000003
EQU TWD4 00000004
EQU TWD5 00000005
EQU TWD6 00000006
EQU TWD7 00000007
EQU I2AR 00000002
EQU TWGCE 00000000
EQU TWA0 00000001
EQU TWA1 00000002
EQU TWA2 00000003
EQU TWA3 00000004
EQU TWA4 00000005
EQU TWA5 00000006
EQU TWA6 00000007
EQU ACME 00000003
EQU ACIS0 00000000
EQU ACIS1 00000001
EQU ACIC 00000002
EQU ACIE 00000003
EQU ACI 00000004
EQU ACO 00000005
EQU ACBG 00000006
EQU ACD 00000007
EQU MUX0 00000000
EQU MUX1 00000001
EQU MUX2 00000002
EQU MUX3 00000003
EQU MUX4 00000004
EQU ADLAR 00000005
EQU REFS0 00000006
EQU REFS1 00000007
EQU ADCSR 00000006
EQU ADPS0 00000000
EQU ADPS1 00000001
EQU ADPS2 00000002
EQU ADIE 00000003
EQU ADIF 00000004
EQU ADATE 00000005
EQU ADFR 00000005
EQU ADSC 00000006
EQU ADEN 00000007
EQU ADCH0 00000000
EQU ADCH1 00000001
EQU ADCH2 00000002
EQU ADCH3 00000003
EQU ADCH4 00000004
EQU ADCH5 00000005
EQU ADCH6 00000006
EQU ADCH7 00000007
EQU ADCL0 00000000
EQU ADCL1 00000001
EQU ADCL2 00000002
EQU ADCL3 00000003
EQU ADCL4 00000004
EQU ADCL5 00000005
EQU ADCL6 00000006
EQU ADCL7 00000007
EQU ADTS0 00000005
EQU ADTS1 00000006
EQU ADTS2 00000007
EQU OCDR0 00000000
EQU OCDR1 00000001
EQU OCDR2 00000002
EQU OCDR3 00000003
EQU OCDR4 00000004
EQU OCDR5 00000005
EQU OCDR6 00000006
EQU OCDR7 00000007
EQU IDRD 00000007
EQU SPMCR 00000037
EQU SPMEN 00000000
EQU PGERS 00000001
EQU PGWRT 00000002
EQU BLBSET 00000003
EQU RWWSRE 00000004
EQU ASRE 00000004
EQU RWWSB 00000006
EQU ASB 00000006
EQU SPMIE 00000007
EQU PORTA0 00000000
EQU PA0 00000000
EQU PORTA1 00000001
EQU PA1 00000001
EQU PORTA2 00000002
EQU PA2 00000002
EQU PORTA3 00000003
EQU PA3 00000003
EQU PORTA4 00000004
EQU PA4 00000004
EQU PORTA5 00000005
EQU PA5 00000005
EQU PORTA6 00000006
EQU PA6 00000006
EQU PORTA7 00000007
EQU PA7 00000007
EQU DDA0 00000000
EQU DDA1 00000001
EQU DDA2 00000002
EQU DDA3 00000003
EQU DDA4 00000004
EQU DDA5 00000005
EQU DDA6 00000006
EQU DDA7 00000007
EQU PINA0 00000000
EQU PINA1 00000001
EQU PINA2 00000002
EQU PINA3 00000003
EQU PINA4 00000004
EQU PINA5 00000005
EQU PINA6 00000006
EQU PINA7 00000007
EQU PORTB0 00000000
EQU PB0 00000000
EQU PORTB1 00000001
EQU PB1 00000001
EQU PORTB2 00000002
EQU PB2 00000002
EQU PORTB3 00000003
EQU PB3 00000003
EQU PORTB4 00000004
EQU PB4 00000004
EQU PORTB5 00000005
EQU PB5 00000005
EQU PORTB6 00000006
EQU PB6 00000006
EQU PORTB7 00000007
EQU PB7 00000007
EQU DDB0 00000000
EQU DDB1 00000001
EQU DDB2 00000002
EQU DDB3 00000003
EQU DDB4 00000004
EQU DDB5 00000005
EQU DDB6 00000006
EQU DDB7 00000007
EQU PINB0 00000000
EQU PINB1 00000001
EQU PINB2 00000002
EQU PINB3 00000003
EQU PINB4 00000004
EQU PINB5 00000005
EQU PINB6 00000006
EQU PINB7 00000007
EQU PORTC0 00000000
EQU PC0 00000000
EQU PORTC1 00000001
EQU PC1 00000001
EQU PORTC2 00000002
EQU PC2 00000002
EQU PORTC3 00000003
EQU PC3 00000003
EQU PORTC4 00000004
EQU PC4 00000004
EQU PORTC5 00000005
EQU PC5 00000005
EQU PORTC6 00000006
EQU PC6 00000006
EQU PORTC7 00000007
EQU PC7 00000007
EQU DDC0 00000000
EQU DDC1 00000001
EQU DDC2 00000002
EQU DDC3 00000003
EQU DDC4 00000004
EQU DDC5 00000005
EQU DDC6 00000006
EQU DDC7 00000007
EQU PINC0 00000000
EQU PINC1 00000001
EQU PINC2 00000002
EQU PINC3 00000003
EQU PINC4 00000004
EQU PINC5 00000005
EQU PINC6 00000006
EQU PINC7 00000007
EQU PORTD0 00000000
EQU PD0 00000000
EQU PORTD1 00000001
EQU PD1 00000001
EQU PORTD2 00000002
EQU PD2 00000002
EQU PORTD3 00000003
EQU PD3 00000003
EQU PORTD4 00000004
EQU PD4 00000004
EQU PORTD5 00000005
EQU PD5 00000005
EQU PORTD6 00000006
EQU PD6 00000006
EQU PORTD7 00000007
EQU PD7 00000007
EQU DDD0 00000000
EQU DDD1 00000001
EQU DDD2 00000002
EQU DDD3 00000003
EQU DDD4 00000004
EQU DDD5 00000005
EQU DDD6 00000006
EQU DDD7 00000007
EQU PIND0 00000000
EQU PIND1 00000001
EQU PIND2 00000002
EQU PIND3 00000003
EQU PIND4 00000004
EQU PIND5 00000005
EQU PIND6 00000006
EQU PIND7 00000007
EQU WDP0 00000000
EQU WDP1 00000001
EQU WDP2 00000002
EQU WDE 00000003
EQU WDTOE 00000004
EQU WDDE 00000004
EQU LB1 00000000
EQU LB2 00000001
EQU BLB01 00000002
EQU BLB02 00000003
EQU BLB11 00000004
EQU BLB12 00000005
EQU CKSEL0 00000000
EQU CKSEL1 00000001
EQU CKSEL2 00000002
EQU CKSEL3 00000003
EQU SUT0 00000004
EQU SUT1 00000005
EQU BODEN 00000006
EQU BODLEVEL 00000007
EQU BOOTRST 00000000
EQU BOOTSZ0 00000001
EQU BOOTSZ1 00000002
EQU EESAVE 00000003
EQU CKOPT 00000004
EQU SPIEN 00000005
EQU JTAGEN 00000006
EQU OCDEN 00000007
DEF XH r27
DEF XL r26
DEF YH r29
DEF YL r28
DEF ZH r31
DEF ZL r30
EQU FLASHEND 00001fff
EQU IOEND 0000003f
EQU SRAM_START 00000060
EQU SRAM_SIZE 00000400
EQU RAMEND 0000045f
EQU XRAMEND 00000000
EQU E2END 000001ff
EQU EEPROMEND 000001ff
EQU EEADRBITS 00000009
EQU NRWW_START_ADDR 00001c00
EQU NRWW_STOP_ADDR 00001fff
EQU RWW_START_ADDR 00000000
EQU RWW_STOP_ADDR 00001bff
EQU PAGESIZE 00000040
EQU FIRSTBOOTSTART 00001f80
EQU SECONDBOOTSTART 00001f00
EQU THIRDBOOTSTART 00001e00
EQU FOURTHBOOTSTART 00001c00
EQU SMALLBOOTSTART 00001f80
EQU LARGEBOOTSTART 00001c00
EQU INT0addr 00000002
EQU INT1addr 00000004
EQU OC2addr 00000006
EQU OVF2addr 00000008
EQU ICP1addr 0000000a
EQU OC1Aaddr 0000000c
EQU OC1Baddr 0000000e
EQU OVF1addr 00000010
EQU OVF0addr 00000012
EQU SPIaddr 00000014
EQU URXCaddr 00000016
EQU UDREaddr 00000018
EQU UTXCaddr 0000001a
EQU ADCCaddr 0000001c
EQU ERDYaddr 0000001e
EQU ACIaddr 00000020
EQU TWIaddr 00000022
EQU INT2addr 00000024
EQU OC0addr 00000026
EQU SPMRaddr 00000028
EQU INT_VECTORS_SIZE 0000002a
DEF POM r16
DEF A r17
DEF B r18
DEF C r19
DEF D r20
CSEG RESET 00000010
CSEG LOOP 0000001d
CSEG ACC 00000021
CSEG BCC 00000026
CSEG CCC 0000002b
CSEG DCC 00000030
CSEG CEKANI 00000033
CSEG L1 00000037
CSEG L2 00000039
CSEG L3 0000003b
@@ -0,0 +1,88 @@
;pokus
.include "m16def.inc"
.def POM=r16
.def A=r17
.def B=r18
.def C=r19
.def D=r20
.org 0x0000 ;zacatek kodu
RJMP RESET ;skok na start po resetu
.org 0x0010 ;zacatek vlastniho programu
RESET:
LDI R16,0x5F ;nastavi stack pointer na 0x045F
OUT SPL,R16 ;coz je konec SRAM u ATmegy16
LDI R16,0x04
OUT SPH,R16
LDI POM,0xFF ;nastavi vsechny porty jako vystupni
OUT DDRA,POM
OUT DDRB,POM
OUT DDRC,POM
OUT DDRD,POM
LDI A,0b01110000 ;hodnoty portu A az D
LDI B,0b10001000
LDI C,0b10001000
LDI D,0b00000111
LOOP:
CLC
ROL A ;preroluj A registr
BRCC ACC ;pokud je C=0, skoc na ACC (A Carry Clear)
SBR A,0b00000001 ;nastav prvni bit v A na 1
ACC: OUT PORTA,A ;output A do PORTA
CLC
ROL B ;preroluj B registr - totez co u A reg.
BRCC BCC
SBR B,0b00000001
BCC: OUT PORTB,B
CLC
ROL C ;preroluj C registr - totez co u A reg.
BRCC CCC
SBR C,0b00000001
CCC: OUT PORTC,C
CLC
ROL D ;preroluj D registr - totez co u A reg.
BRCC DCC
SBR D,0b00000001
DCC: OUT PORTD,D
RCALL CEKANI
RJMP LOOP ;znovu na navesti LOOP
CEKANI:
PUSH r18 ;ulozit pouzivane registry do STACKU
PUSH r17
PUSH r16
LDI r16, 40
L1: DEC r16
LDI r17, 40
L2: DEC r17
LDI r18, 40
L3: DEC r18
CPI r18, 0
BRNE L3
CPI r17, 0
BRNE L2
CPI r16, 0
BRNE L1
POP r16 ;nacist puvodni obsah registru ze STACKU
POP r17
POP r18
RET ;navrat do hlavniho programu
@@ -0,0 +1 @@
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATmega16"/><Files><File00000 Name="C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED2" Position="197 71 1026 566" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
@@ -0,0 +1,33 @@
<ASSEMBLER_INFO>
<VERSION>2.1.12</VERSION>
<DEVICE>ATmega16</DEVICE>
<WORKING_DIR>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze</WORKING_DIR>
<INCLUDE_PATH>
<DIR>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes</DIR>
</INCLUDE_PATH>
<SOURCE_FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</SOURCE_FILE>
<INCLUDED_FILES>
<FILE>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc</FILE>
</INCLUDED_FILES>
<OBJECT_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.obj</FILE>
</OBJECT_FILES>
<HEX_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.hex</FILE>
</HEX_FILES>
<OUTPUT_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.map</FILE>
</OUTPUT_FILES>
<LABELS>
<RESET><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>18</LINE></RESET>
<LOOP><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>36</LINE></LOOP>
<ACC><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>41</LINE></ACC>
<BCC><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>47</LINE></BCC>
<CCC><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>53</LINE></CCC>
<DCC><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>59</LINE></DCC>
<CEKANI><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>63</LINE></CEKANI>
<L1><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>69</LINE></L1>
<L2><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>71</LINE></L2>
<L3><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\HAD_leze\efekty_LED.asm</FILE><LINE>73</LINE></L3>
</LABELS>
</ASSEMBLER_INFO>
@@ -0,0 +1,2 @@
@ECHO OFF
"C:\Program Files\Atmel\AVR Tools\AvrAssembler2\avrasm2.exe" -S "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\labels.tmp" -fI -W+ie -o "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.hex" -d "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.obj" -e "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.eep" -m "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.map" "C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm"
@@ -0,0 +1 @@
<AVRStudio><MANAGEMENT><Created>06-Sep-2007 20:57:13</Created><LastEdit>10-Sep-2007 21:51:09</LastEdit><ProjectType>0</ProjectType><Created>06-Sep-2007 20:57:13</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>Atmel AVR Assembler</ProjectTypeName><ICON>208</ICON><ProjectName>LED_display</ProjectName><Created>08-Sep-2007 21:57:32</Created><LastEdit>08-Sep-2007 21:57:32</LastEdit><ICON>208</ICON><ProjectType>0</ProjectType><Created>08-Sep-2007 21:57:32</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>Atmel AVR Assembler</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>LED_display.obj</ObjectFile><EntryFile>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</EntryFile><ObjectFile></ObjectFile><EntryFile></EntryFile><SaveFolder>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_PART>ATmega16</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega16.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND></IO_EXPAND><REGISTERNAMES></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><modules><module></module></modules><Triggers></Triggers></Debugger><AvrAssembler><Folder>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\</Folder><RelPath>LED_display.asm</RelPath><EntryFile>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</EntryFile><IncludePath>C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes</IncludePath><V2IncludePath></V2IncludePath><V2Parameters></V2Parameters><FileType>I</FileType><ObjectName>LED_display</ObjectName><Wrap>0</Wrap><ErrorAsWarning>0</ErrorAsWarning><MapFile>1</MapFile><ListFile>0</ListFile><Version1>0</Version1><PreCompile></PreCompile><PostCompile></PostCompile><SourceFiles>,</SourceFiles></AvrAssembler><ProjectIncludeDirs><Dirs><Dir>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes</Dir></Dirs></ProjectIncludeDirs><ProjectFiles><Files><Name>\LED_display.asm</Name><Name>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc</Name></Files></ProjectFiles><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>LED_display.asm</FileName><Status>1</Status></File00000></Files><Workspace><File00000><Position>197 71 1026 566</Position><LineCol>59 11</LineCol><State>Maximized</State></File00000></Workspace><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
@@ -0,0 +1,74 @@
;pokus
.include "m16def.inc"
.def POM=r16
.cseg
.org 0x0000 ;zacatek kodu
RJMP RESET ;skok na start po resetu
.org 0x0010 ;zacatek vlastniho programu
RESET:
LDI R16,0x5F ;nastavi stack pointer na 0x045F
OUT SPL,R16 ;coz je konec SRAM u ATmegy16
LDI R16,0x04
OUT SPH,R16
LDI POM,0xFF ;nastavi vsechny potrebne porty jako vystupni
OUT DDRA,POM
OUT DDRB,POM
LOOP:
LDI r16,0b01110111 ;display 3 abcef
LDI r17,0b00001000
OUT PORTA,r16
OUT PORTB,r17
RCALL cekani
LDI r16,0b01110110 ;display 2
LDI r17,0b00000100
OUT PORTA,r16
OUT PORTB,r17
RCALL cekani
LDI r16,0b00111111 ;display 1
LDI r17,0b00000010
OUT PORTA,r16
OUT PORTB,r17
RCALL cekani
LDI r16,0b00011110 ;display 0
LDI r17,0b00000001
OUT PORTA,r16
OUT PORTB,r17
RCALL cekani
RJMP LOOP ;jdi na LOOP
CEKANI:
PUSH r18 ;ulozit pouzivane registry do STACKU
PUSH r17
PUSH r16
LDI r16, 2
L1: DEC r16
LDI r17, 2
L2: DEC r17
LDI r18, 2
L3: DEC r18
CPI r18, 0
BRNE L3
CPI r17, 0
BRNE L2
CPI r16, 0
BRNE L1
POP r16 ;nacist puvodni obsah registru ze STACKU
POP r17
POP r18
RET ;navrat do hlavniho programu
@@ -0,0 +1,613 @@
AVRASM ver. 2.1.12 C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm Mon Sep 10 21:42:09 2007
EQU SIGNATURE_000 0000001e
EQU SIGNATURE_001 00000094
EQU SIGNATURE_002 00000003
EQU SREG 0000003f
EQU SPL 0000003d
EQU SPH 0000003e
EQU OCR0 0000003c
EQU GICR 0000003b
EQU GIFR 0000003a
EQU TIMSK 00000039
EQU TIFR 00000038
EQU SPMCSR 00000037
EQU TWCR 00000036
EQU MCUCR 00000035
EQU MCUCSR 00000034
EQU TCCR0 00000033
EQU TCNT0 00000032
EQU OSCCAL 00000031
EQU OCDR 00000031
EQU SFIOR 00000030
EQU TCCR1A 0000002f
EQU TCCR1B 0000002e
EQU TCNT1L 0000002c
EQU TCNT1H 0000002d
EQU OCR1AL 0000002a
EQU OCR1AH 0000002b
EQU OCR1BL 00000028
EQU OCR1BH 00000029
EQU ICR1L 00000026
EQU ICR1H 00000027
EQU TCCR2 00000025
EQU TCNT2 00000024
EQU OCR2 00000023
EQU ASSR 00000022
EQU WDTCR 00000021
EQU UBRRH 00000020
EQU UCSRC 00000020
EQU EEARL 0000001e
EQU EEARH 0000001f
EQU EEDR 0000001d
EQU EECR 0000001c
EQU PORTA 0000001b
EQU DDRA 0000001a
EQU PINA 00000019
EQU PORTB 00000018
EQU DDRB 00000017
EQU PINB 00000016
EQU PORTC 00000015
EQU DDRC 00000014
EQU PINC 00000013
EQU PORTD 00000012
EQU DDRD 00000011
EQU PIND 00000010
EQU SPDR 0000000f
EQU SPSR 0000000e
EQU SPCR 0000000d
EQU UDR 0000000c
EQU UCSRA 0000000b
EQU UCSRB 0000000a
EQU UBRRL 00000009
EQU ACSR 00000008
EQU ADMUX 00000007
EQU ADCSRA 00000006
EQU ADCH 00000005
EQU ADCL 00000004
EQU TWDR 00000003
EQU TWAR 00000002
EQU TWSR 00000001
EQU TWBR 00000000
EQU CS00 00000000
EQU CS01 00000001
EQU CS02 00000002
EQU WGM01 00000003
EQU CTC0 00000003
EQU COM00 00000004
EQU COM01 00000005
EQU WGM00 00000006
EQU PWM0 00000006
EQU FOC0 00000007
EQU TCNT0_0 00000000
EQU TCNT0_1 00000001
EQU TCNT0_2 00000002
EQU TCNT0_3 00000003
EQU TCNT0_4 00000004
EQU TCNT0_5 00000005
EQU TCNT0_6 00000006
EQU TCNT0_7 00000007
EQU OCR0_0 00000000
EQU OCR0_1 00000001
EQU OCR0_2 00000002
EQU OCR0_3 00000003
EQU OCR0_4 00000004
EQU OCR0_5 00000005
EQU OCR0_6 00000006
EQU OCR0_7 00000007
EQU TOIE0 00000000
EQU OCIE0 00000001
EQU TOV0 00000000
EQU OCF0 00000001
EQU PSR10 00000000
EQU TOIE1 00000002
EQU OCIE1B 00000003
EQU OCIE1A 00000004
EQU TICIE1 00000005
EQU TOV1 00000002
EQU OCF1B 00000003
EQU OCF1A 00000004
EQU ICF1 00000005
EQU WGM10 00000000
EQU PWM10 00000000
EQU WGM11 00000001
EQU PWM11 00000001
EQU FOC1B 00000002
EQU FOC1A 00000003
EQU COM1B0 00000004
EQU COM1B1 00000005
EQU COM1A0 00000006
EQU COM1A1 00000007
EQU CS10 00000000
EQU CS11 00000001
EQU CS12 00000002
EQU WGM12 00000003
EQU CTC10 00000003
EQU CTC1 00000003
EQU WGM13 00000004
EQU CTC11 00000004
EQU ICES1 00000006
EQU ICNC1 00000007
EQU GIMSK 0000003b
EQU IVCE 00000000
EQU IVSEL 00000001
EQU INT2 00000005
EQU INT0 00000006
EQU INT1 00000007
EQU INTF2 00000005
EQU INTF0 00000006
EQU INTF1 00000007
EQU ISC00 00000000
EQU ISC01 00000001
EQU ISC10 00000002
EQU ISC11 00000003
EQU ISC2 00000006
EQU EEDR0 00000000
EQU EEDR1 00000001
EQU EEDR2 00000002
EQU EEDR3 00000003
EQU EEDR4 00000004
EQU EEDR5 00000005
EQU EEDR6 00000006
EQU EEDR7 00000007
EQU EERE 00000000
EQU EEWE 00000001
EQU EEMWE 00000002
EQU EEWEE 00000002
EQU EERIE 00000003
EQU SREG_C 00000000
EQU SREG_Z 00000001
EQU SREG_N 00000002
EQU SREG_V 00000003
EQU SREG_S 00000004
EQU SREG_H 00000005
EQU SREG_T 00000006
EQU SREG_I 00000007
EQU SM0 00000004
EQU SM1 00000005
EQU SE 00000006
EQU SM2 00000007
EQU MCUSR 00000034
EQU PORF 00000000
EQU EXTRF 00000001
EQU EXTREF 00000001
EQU BORF 00000002
EQU WDRF 00000003
EQU JTRF 00000004
EQU JTD 00000007
EQU CAL0 00000000
EQU CAL1 00000001
EQU CAL2 00000002
EQU CAL3 00000003
EQU CAL4 00000004
EQU CAL5 00000005
EQU CAL6 00000006
EQU CAL7 00000007
EQU PSR2 00000001
EQU PUD 00000002
EQU TOIE2 00000006
EQU OCIE2 00000007
EQU TOV2 00000006
EQU OCF2 00000007
EQU CS20 00000000
EQU CS21 00000001
EQU CS22 00000002
EQU WGM21 00000003
EQU CTC2 00000003
EQU COM20 00000004
EQU COM21 00000005
EQU WGM20 00000006
EQU PWM2 00000006
EQU FOC2 00000007
EQU TCNT2_0 00000000
EQU TCNT2_1 00000001
EQU TCNT2_2 00000002
EQU TCNT2_3 00000003
EQU TCNT2_4 00000004
EQU TCNT2_5 00000005
EQU TCNT2_6 00000006
EQU TCNT2_7 00000007
EQU OCR2_0 00000000
EQU OCR2_1 00000001
EQU OCR2_2 00000002
EQU OCR2_3 00000003
EQU OCR2_4 00000004
EQU OCR2_5 00000005
EQU OCR2_6 00000006
EQU OCR2_7 00000007
EQU TCR2UB 00000000
EQU OCR2UB 00000001
EQU TCN2UB 00000002
EQU AS2 00000003
EQU SPDR0 00000000
EQU SPDR1 00000001
EQU SPDR2 00000002
EQU SPDR3 00000003
EQU SPDR4 00000004
EQU SPDR5 00000005
EQU SPDR6 00000006
EQU SPDR7 00000007
EQU SPI2X 00000000
EQU WCOL 00000006
EQU SPIF 00000007
EQU SPR0 00000000
EQU SPR1 00000001
EQU CPHA 00000002
EQU CPOL 00000003
EQU MSTR 00000004
EQU DORD 00000005
EQU SPE 00000006
EQU SPIE 00000007
EQU UDR0 00000000
EQU UDR1 00000001
EQU UDR2 00000002
EQU UDR3 00000003
EQU UDR4 00000004
EQU UDR5 00000005
EQU UDR6 00000006
EQU UDR7 00000007
EQU USR 0000000b
EQU MPCM 00000000
EQU U2X 00000001
EQU UPE 00000002
EQU PE 00000002
EQU DOR 00000003
EQU FE 00000004
EQU UDRE 00000005
EQU TXC 00000006
EQU RXC 00000007
EQU UCR 0000000a
EQU TXB8 00000000
EQU RXB8 00000001
EQU UCSZ2 00000002
EQU CHR9 00000002
EQU TXEN 00000003
EQU RXEN 00000004
EQU UDRIE 00000005
EQU TXCIE 00000006
EQU RXCIE 00000007
EQU UCPOL 00000000
EQU UCSZ0 00000001
EQU UCSZ1 00000002
EQU USBS 00000003
EQU UPM0 00000004
EQU UPM1 00000005
EQU UMSEL 00000006
EQU URSEL 00000007
EQU UBRRHI 00000020
EQU I2BR 00000000
EQU TWBR0 00000000
EQU TWBR1 00000001
EQU TWBR2 00000002
EQU TWBR3 00000003
EQU TWBR4 00000004
EQU TWBR5 00000005
EQU TWBR6 00000006
EQU TWBR7 00000007
EQU I2CR 00000036
EQU TWIE 00000000
EQU I2IE 00000000
EQU TWEN 00000002
EQU I2EN 00000002
EQU ENI2C 00000002
EQU TWWC 00000003
EQU I2WC 00000003
EQU TWSTO 00000004
EQU I2STO 00000004
EQU TWSTA 00000005
EQU I2STA 00000005
EQU TWEA 00000006
EQU I2EA 00000006
EQU TWINT 00000007
EQU I2INT 00000007
EQU I2SR 00000001
EQU TWPS0 00000000
EQU TWS0 00000000
EQU I2GCE 00000000
EQU TWPS1 00000001
EQU TWS1 00000001
EQU TWS3 00000003
EQU I2S3 00000003
EQU TWS4 00000004
EQU I2S4 00000004
EQU TWS5 00000005
EQU I2S5 00000005
EQU TWS6 00000006
EQU I2S6 00000006
EQU TWS7 00000007
EQU I2S7 00000007
EQU I2DR 00000003
EQU TWD0 00000000
EQU TWD1 00000001
EQU TWD2 00000002
EQU TWD3 00000003
EQU TWD4 00000004
EQU TWD5 00000005
EQU TWD6 00000006
EQU TWD7 00000007
EQU I2AR 00000002
EQU TWGCE 00000000
EQU TWA0 00000001
EQU TWA1 00000002
EQU TWA2 00000003
EQU TWA3 00000004
EQU TWA4 00000005
EQU TWA5 00000006
EQU TWA6 00000007
EQU ACME 00000003
EQU ACIS0 00000000
EQU ACIS1 00000001
EQU ACIC 00000002
EQU ACIE 00000003
EQU ACI 00000004
EQU ACO 00000005
EQU ACBG 00000006
EQU ACD 00000007
EQU MUX0 00000000
EQU MUX1 00000001
EQU MUX2 00000002
EQU MUX3 00000003
EQU MUX4 00000004
EQU ADLAR 00000005
EQU REFS0 00000006
EQU REFS1 00000007
EQU ADCSR 00000006
EQU ADPS0 00000000
EQU ADPS1 00000001
EQU ADPS2 00000002
EQU ADIE 00000003
EQU ADIF 00000004
EQU ADATE 00000005
EQU ADFR 00000005
EQU ADSC 00000006
EQU ADEN 00000007
EQU ADCH0 00000000
EQU ADCH1 00000001
EQU ADCH2 00000002
EQU ADCH3 00000003
EQU ADCH4 00000004
EQU ADCH5 00000005
EQU ADCH6 00000006
EQU ADCH7 00000007
EQU ADCL0 00000000
EQU ADCL1 00000001
EQU ADCL2 00000002
EQU ADCL3 00000003
EQU ADCL4 00000004
EQU ADCL5 00000005
EQU ADCL6 00000006
EQU ADCL7 00000007
EQU ADTS0 00000005
EQU ADTS1 00000006
EQU ADTS2 00000007
EQU OCDR0 00000000
EQU OCDR1 00000001
EQU OCDR2 00000002
EQU OCDR3 00000003
EQU OCDR4 00000004
EQU OCDR5 00000005
EQU OCDR6 00000006
EQU OCDR7 00000007
EQU IDRD 00000007
EQU SPMCR 00000037
EQU SPMEN 00000000
EQU PGERS 00000001
EQU PGWRT 00000002
EQU BLBSET 00000003
EQU RWWSRE 00000004
EQU ASRE 00000004
EQU RWWSB 00000006
EQU ASB 00000006
EQU SPMIE 00000007
EQU PORTA0 00000000
EQU PA0 00000000
EQU PORTA1 00000001
EQU PA1 00000001
EQU PORTA2 00000002
EQU PA2 00000002
EQU PORTA3 00000003
EQU PA3 00000003
EQU PORTA4 00000004
EQU PA4 00000004
EQU PORTA5 00000005
EQU PA5 00000005
EQU PORTA6 00000006
EQU PA6 00000006
EQU PORTA7 00000007
EQU PA7 00000007
EQU DDA0 00000000
EQU DDA1 00000001
EQU DDA2 00000002
EQU DDA3 00000003
EQU DDA4 00000004
EQU DDA5 00000005
EQU DDA6 00000006
EQU DDA7 00000007
EQU PINA0 00000000
EQU PINA1 00000001
EQU PINA2 00000002
EQU PINA3 00000003
EQU PINA4 00000004
EQU PINA5 00000005
EQU PINA6 00000006
EQU PINA7 00000007
EQU PORTB0 00000000
EQU PB0 00000000
EQU PORTB1 00000001
EQU PB1 00000001
EQU PORTB2 00000002
EQU PB2 00000002
EQU PORTB3 00000003
EQU PB3 00000003
EQU PORTB4 00000004
EQU PB4 00000004
EQU PORTB5 00000005
EQU PB5 00000005
EQU PORTB6 00000006
EQU PB6 00000006
EQU PORTB7 00000007
EQU PB7 00000007
EQU DDB0 00000000
EQU DDB1 00000001
EQU DDB2 00000002
EQU DDB3 00000003
EQU DDB4 00000004
EQU DDB5 00000005
EQU DDB6 00000006
EQU DDB7 00000007
EQU PINB0 00000000
EQU PINB1 00000001
EQU PINB2 00000002
EQU PINB3 00000003
EQU PINB4 00000004
EQU PINB5 00000005
EQU PINB6 00000006
EQU PINB7 00000007
EQU PORTC0 00000000
EQU PC0 00000000
EQU PORTC1 00000001
EQU PC1 00000001
EQU PORTC2 00000002
EQU PC2 00000002
EQU PORTC3 00000003
EQU PC3 00000003
EQU PORTC4 00000004
EQU PC4 00000004
EQU PORTC5 00000005
EQU PC5 00000005
EQU PORTC6 00000006
EQU PC6 00000006
EQU PORTC7 00000007
EQU PC7 00000007
EQU DDC0 00000000
EQU DDC1 00000001
EQU DDC2 00000002
EQU DDC3 00000003
EQU DDC4 00000004
EQU DDC5 00000005
EQU DDC6 00000006
EQU DDC7 00000007
EQU PINC0 00000000
EQU PINC1 00000001
EQU PINC2 00000002
EQU PINC3 00000003
EQU PINC4 00000004
EQU PINC5 00000005
EQU PINC6 00000006
EQU PINC7 00000007
EQU PORTD0 00000000
EQU PD0 00000000
EQU PORTD1 00000001
EQU PD1 00000001
EQU PORTD2 00000002
EQU PD2 00000002
EQU PORTD3 00000003
EQU PD3 00000003
EQU PORTD4 00000004
EQU PD4 00000004
EQU PORTD5 00000005
EQU PD5 00000005
EQU PORTD6 00000006
EQU PD6 00000006
EQU PORTD7 00000007
EQU PD7 00000007
EQU DDD0 00000000
EQU DDD1 00000001
EQU DDD2 00000002
EQU DDD3 00000003
EQU DDD4 00000004
EQU DDD5 00000005
EQU DDD6 00000006
EQU DDD7 00000007
EQU PIND0 00000000
EQU PIND1 00000001
EQU PIND2 00000002
EQU PIND3 00000003
EQU PIND4 00000004
EQU PIND5 00000005
EQU PIND6 00000006
EQU PIND7 00000007
EQU WDP0 00000000
EQU WDP1 00000001
EQU WDP2 00000002
EQU WDE 00000003
EQU WDTOE 00000004
EQU WDDE 00000004
EQU LB1 00000000
EQU LB2 00000001
EQU BLB01 00000002
EQU BLB02 00000003
EQU BLB11 00000004
EQU BLB12 00000005
EQU CKSEL0 00000000
EQU CKSEL1 00000001
EQU CKSEL2 00000002
EQU CKSEL3 00000003
EQU SUT0 00000004
EQU SUT1 00000005
EQU BODEN 00000006
EQU BODLEVEL 00000007
EQU BOOTRST 00000000
EQU BOOTSZ0 00000001
EQU BOOTSZ1 00000002
EQU EESAVE 00000003
EQU CKOPT 00000004
EQU SPIEN 00000005
EQU JTAGEN 00000006
EQU OCDEN 00000007
DEF XH r27
DEF XL r26
DEF YH r29
DEF YL r28
DEF ZH r31
DEF ZL r30
EQU FLASHEND 00001fff
EQU IOEND 0000003f
EQU SRAM_START 00000060
EQU SRAM_SIZE 00000400
EQU RAMEND 0000045f
EQU XRAMEND 00000000
EQU E2END 000001ff
EQU EEPROMEND 000001ff
EQU EEADRBITS 00000009
EQU NRWW_START_ADDR 00001c00
EQU NRWW_STOP_ADDR 00001fff
EQU RWW_START_ADDR 00000000
EQU RWW_STOP_ADDR 00001bff
EQU PAGESIZE 00000040
EQU FIRSTBOOTSTART 00001f80
EQU SECONDBOOTSTART 00001f00
EQU THIRDBOOTSTART 00001e00
EQU FOURTHBOOTSTART 00001c00
EQU SMALLBOOTSTART 00001f80
EQU LARGEBOOTSTART 00001c00
EQU INT0addr 00000002
EQU INT1addr 00000004
EQU OC2addr 00000006
EQU OVF2addr 00000008
EQU ICP1addr 0000000a
EQU OC1Aaddr 0000000c
EQU OC1Baddr 0000000e
EQU OVF1addr 00000010
EQU OVF0addr 00000012
EQU SPIaddr 00000014
EQU URXCaddr 00000016
EQU UDREaddr 00000018
EQU UTXCaddr 0000001a
EQU ADCCaddr 0000001c
EQU ERDYaddr 0000001e
EQU ACIaddr 00000020
EQU TWIaddr 00000022
EQU INT2addr 00000024
EQU OC0addr 00000026
EQU SPMRaddr 00000028
EQU INT_VECTORS_SIZE 0000002a
DEF POM r16
CSEG RESET 00000010
CSEG LOOP 00000017
CSEG cekani 0000002c
CSEG L1 00000030
CSEG L2 00000032
CSEG L3 00000034
@@ -0,0 +1,29 @@
<ASSEMBLER_INFO>
<VERSION>2.1.12</VERSION>
<DEVICE>ATmega16</DEVICE>
<WORKING_DIR>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display</WORKING_DIR>
<INCLUDE_PATH>
<DIR>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes</DIR>
</INCLUDE_PATH>
<SOURCE_FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</SOURCE_FILE>
<INCLUDED_FILES>
<FILE>C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc</FILE>
</INCLUDED_FILES>
<OBJECT_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.obj</FILE>
</OBJECT_FILES>
<HEX_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.hex</FILE>
</HEX_FILES>
<OUTPUT_FILES>
<FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.map</FILE>
</OUTPUT_FILES>
<LABELS>
<RESET><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>14</LINE></RESET>
<LOOP><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>24</LINE></LOOP>
<cekani><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>51</LINE></cekani>
<L1><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>57</LINE></L1>
<L2><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>59</LINE></L2>
<L3><FILE>C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm</FILE><LINE>61</LINE></L3>
</LABELS>
</ASSEMBLER_INFO>
@@ -0,0 +1 @@
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA16"/><Files><File00000 Name="C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\LED_display\LED_display.asm" Position="197 71 1026 566" LineCol="59 11" State="Maximized"/></Files></AVRWorkspace>
@@ -0,0 +1,53 @@
;pokus
.include "tn13def.inc"
.def POM=r16
.org 0x0000 ;zacatek kodu
RJMP RESET ;skok na start po resetu
.org 0x0010 ;zacatek vlastniho programu
RESET:
LDI POM,low(RAMEND) ;nastavi stack pointer
OUT SPL,POM
LDI POM,0B00000011 ;nastavi vystupni piny
OUT DDRB,POM
LOOP:
SBI PORTB,0 ;PB0=0, PB1=1
CBI PORTB,1
RCALL CEKANI ;CEKACI SUB
CBI PORTB,0 ;PB0=1, PB1=0
SBI PORTB,1
RCALL CEKANI ;CEKACI SUB
RJMP LOOP ;znovu na navesti LOOP
CEKANI:
PUSH r18 ;ulozit pouzivane registry do STACKU
PUSH r17
PUSH r16
LDI r16, 100
L1: DEC r16
LDI r17, 100
L2: DEC r17
LDI r18, 125
L3: DEC r18
CPI r18, 0
BRNE L3
CPI r17, 0
BRNE L2
CPI r16, 0
BRNE L1
POP r16 ;nacist puvodni obsah registru ze STACKU
POP r17
POP r18
RET ;navrat do hlavniho programu
@@ -0,0 +1,287 @@
AVRASM ver. 2.1.12 C:\Documents and Settings\Ondra\Dokumenty\AVR projekty\pokus\pokus.asm Tue Sep 04 20:36:18 2007
EQU SIGNATURE_000 0000001e
EQU SIGNATURE_001 00000090
EQU SIGNATURE_002 00000007
EQU SREG 0000003f
EQU SPL 0000003d
EQU GIMSK 0000003b
EQU GIFR 0000003a
EQU TIMSK0 00000039
EQU TIFR0 00000038
EQU SPMCSR 00000037
EQU OCR0A 00000036
EQU MCUCR 00000035
EQU MCUSR 00000034
EQU TCCR0B 00000033
EQU TCNT0 00000032
EQU OSCCAL 00000031
EQU TCCR0A 0000002f
EQU DWDR 0000002e
EQU OCR0B 00000029
EQU GTCCR 00000028
EQU CLKPR 00000026
EQU WDTCR 00000021
EQU EEAR 0000001e
EQU EEDR 0000001d
EQU EECR 0000001c
EQU PORTB 00000018
EQU DDRB 00000017
EQU PINB 00000016
EQU PCMSK 00000015
EQU DIDR0 00000014
EQU ACSR 00000008
EQU ADMUX 00000007
EQU ADCSRA 00000006
EQU ADCH 00000005
EQU ADCL 00000004
EQU ADCSRB 00000003
EQU MUX0 00000000
EQU MUX1 00000001
EQU ADLAR 00000005
EQU REFS0 00000006
EQU ADPS0 00000000
EQU ADPS1 00000001
EQU ADPS2 00000002
EQU ADIE 00000003
EQU ADIF 00000004
EQU ADATE 00000005
EQU ADSC 00000006
EQU ADEN 00000007
EQU ADCH0 00000000
EQU ADCH1 00000001
EQU ADCH2 00000002
EQU ADCH3 00000003
EQU ADCH4 00000004
EQU ADCH5 00000005
EQU ADCH6 00000006
EQU ADCH7 00000007
EQU ADCL0 00000000
EQU ADCL1 00000001
EQU ADCL2 00000002
EQU ADCL3 00000003
EQU ADCL4 00000004
EQU ADCL5 00000005
EQU ADCL6 00000006
EQU ADCL7 00000007
EQU ADTS0 00000000
EQU ADTS1 00000001
EQU ADTS2 00000002
EQU ADC1D 00000002
EQU ADC3D 00000003
EQU ADC2D 00000004
EQU ADC0D 00000005
EQU ACME 00000006
EQU ACIS0 00000000
EQU ACIS1 00000001
EQU ACIE 00000003
EQU ACI 00000004
EQU ACO 00000005
EQU ACBG 00000006
EQU AINBG 00000006
EQU ACD 00000007
EQU AIN0D 00000000
EQU AIN1D 00000001
EQU EEARL 0000001e
EQU EEAR0 00000000
EQU EEAR1 00000001
EQU EEAR2 00000002
EQU EEAR3 00000003
EQU EEAR4 00000004
EQU EEAR5 00000005
EQU EEDR0 00000000
EQU EEDR1 00000001
EQU EEDR2 00000002
EQU EEDR3 00000003
EQU EEDR4 00000004
EQU EEDR5 00000005
EQU EEDR6 00000006
EQU EEDR7 00000007
EQU EERE 00000000
EQU EEWE 00000001
EQU EEPE 00000001
EQU EEMWE 00000002
EQU EEMPE 00000002
EQU EERIE 00000003
EQU EEPM0 00000004
EQU EEPM1 00000005
EQU SREG_C 00000000
EQU SREG_Z 00000001
EQU SREG_N 00000002
EQU SREG_V 00000003
EQU SREG_S 00000004
EQU SREG_H 00000005
EQU SREG_T 00000006
EQU SREG_I 00000007
EQU SP0 00000000
EQU SP1 00000001
EQU SP2 00000002
EQU SP3 00000003
EQU SP4 00000004
EQU SP5 00000005
EQU SP6 00000006
EQU SP7 00000007
EQU ISC00 00000000
EQU ISC01 00000001
EQU SM0 00000003
EQU SM1 00000004
EQU SE 00000005
EQU PUD 00000006
EQU PORF 00000000
EQU EXTRF 00000001
EQU BORF 00000002
EQU WDRF 00000003
EQU CAL0 00000000
EQU CAL1 00000001
EQU CAL2 00000002
EQU CAL3 00000003
EQU CAL4 00000004
EQU CAL5 00000005
EQU CAL6 00000006
EQU CLKPS0 00000000
EQU CLKPS1 00000001
EQU CLKPS2 00000002
EQU CLKPS3 00000003
EQU CLKPCE 00000007
EQU DWDR0 00000000
EQU DWDR1 00000001
EQU DWDR2 00000002
EQU DWDR3 00000003
EQU DWDR4 00000004
EQU DWDR5 00000005
EQU DWDR6 00000006
EQU DWDR7 00000007
EQU SPMEN 00000000
EQU PGERS 00000001
EQU PGWRT 00000002
EQU RFLB 00000003
EQU CTPB 00000004
EQU PORTB0 00000000
EQU PB0 00000000
EQU PORTB1 00000001
EQU PB1 00000001
EQU PORTB2 00000002
EQU PB2 00000002
EQU PORTB3 00000003
EQU PB3 00000003
EQU PORTB4 00000004
EQU PB4 00000004
EQU PORTB5 00000005
EQU PB5 00000005
EQU DDB0 00000000
EQU DDB1 00000001
EQU DDB2 00000002
EQU DDB3 00000003
EQU DDB4 00000004
EQU DDB5 00000005
EQU PINB0 00000000
EQU PINB1 00000001
EQU PINB2 00000002
EQU PINB3 00000003
EQU PINB4 00000004
EQU PINB5 00000005
EQU GICR 0000003b
EQU PCIE 00000005
EQU INT0 00000006
EQU PCIF 00000005
EQU INTF0 00000006
EQU PCINT0 00000000
EQU PCINT1 00000001
EQU PCINT2 00000002
EQU PCINT3 00000003
EQU PCINT4 00000004
EQU PCINT5 00000005
EQU TOIE0 00000001
EQU OCIE0A 00000002
EQU OCIE0B 00000003
EQU TOV0 00000001
EQU OCF0A 00000002
EQU OCF0B 00000003
EQU OCR0_0 00000000
EQU OCR0_1 00000001
EQU OCR0_2 00000002
EQU OCR0_3 00000003
EQU OCR0_4 00000004
EQU OCR0_5 00000005
EQU OCR0_6 00000006
EQU OCR0_7 00000007
EQU WGM00 00000000
EQU WGM01 00000001
EQU COM0B0 00000004
EQU COM0B1 00000005
EQU COM0A0 00000006
EQU COM0A1 00000007
EQU TCNT0_0 00000000
EQU TCNT0_1 00000001
EQU TCNT0_2 00000002
EQU TCNT0_3 00000003
EQU TCNT0_4 00000004
EQU TCNT0_5 00000005
EQU TCNT0_6 00000006
EQU TCNT0_7 00000007
EQU CS00 00000000
EQU CS01 00000001
EQU CS02 00000002
EQU WGM02 00000003
EQU FOC0B 00000006
EQU FOC0A 00000007
EQU PSR10 00000000
EQU TSM 00000007
EQU WDP0 00000000
EQU WDP1 00000001
EQU WDP2 00000002
EQU WDE 00000003
EQU WDCE 00000004
EQU WDP3 00000005
EQU WDTIE 00000006
EQU WDTIF 00000007
EQU LB1 00000000
EQU LB2 00000001
EQU CKSEL0 00000000
EQU CKSEL1 00000001
EQU SUT0 00000002
EQU SUT1 00000003
EQU CKDIV8 00000004
EQU WDTON 00000005
EQU EESAVE 00000006
EQU SPIEN 00000007
EQU RSTDISBL 00000000
EQU BODLEVEL0 00000001
EQU BODLEVEL1 00000002
EQU DWEN 00000003
EQU SELFPRGEN 00000004
DEF XH r27
DEF XL r26
DEF YH r29
DEF YL r28
DEF ZH r31
DEF ZL r30
EQU FLASHEND 000001ff
EQU IOEND 0000003f
EQU SRAM_START 00000060
EQU SRAM_SIZE 00000040
EQU RAMEND 0000009f
EQU XRAMEND 00000000
EQU E2END 0000003f
EQU EEPROMEND 0000003f
EQU EEADRBITS 00000006
EQU PAGESIZE 00000010
EQU INT0addr 00000001
EQU PCI0addr 00000002
EQU OVF0addr 00000003
EQU ERDYaddr 00000004
EQU ACIaddr 00000005
EQU OC0Aaddr 00000006
EQU OC0Baddr 00000007
EQU WDTaddr 00000008
EQU ADCCaddr 00000009
EQU INT_VECTORS_SIZE 0000000a
DEF POM r16
CSEG RESET 00000010
CSEG LOOP 00000014
CSEG CEKANI 0000001b
CSEG L1 0000001f
CSEG L2 00000021
CSEG L3 00000023
@@ -0,0 +1,53 @@
.device attiny13
.def CNT=r25
.def LED=r24
.org 0x0000 ;zacatek kodu
RJMP RESET ;skok na start po resetu
.org 0x0010
RESET:
LDI r16,low(RAMEND) ;nastavi stack pointer
OUT SPL,r16
CLI ;zakazat vsechna preruseni
LDI LED,0
LDI r16,0b11111110 ;PB2 je vystupni, PB0 vstupni
OUT DDRB,r16
LDI r16,0 ;vypnout PullUp
OUT PORTB,r16
LOOP:
IN r16,PINB ;dej do r16 stav PINB
ANDI r16,0b00000001
CPI r16,1 ;neni-li to 1, jdi na STORNO
BRNE STORNO
INC CNT ;CNT+1
CPI CNT,50 ;neni-li CNT=100, jdi na LOOP
BRNE LOOP
IN r16,PORTB ;r16=PORTB (vystupni port)
LDI r17,0b00000100 ;vyxoruj r16 s 0b00000100
EOR r16,R17
OUT PORTB,R16 ;a vysledek dej na PORTB
KONEC:
IN r16,PINB ;cekani na vstup nuly do PINB0
ANDI r16,0b00000001
CPI r16,0
BRNE KONEC ;neni-li r16=0, jdi na KONEC
RJMP LOOP ;jdi na LOOP
STORNO:
LDI CNT,0 ;do CNT dej 0
RJMP LOOP ;jdi na LOOP