AVR ASSEMBLER PRIKLADY

Programovacie jazyky, rady, poradňa...
pallop
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 25
Registrovaný: 14 jún 2006, 18:40
Bydlisko: ZA

AVR ASSEMBLER PRIKLADY

Príspevok od používateľa pallop »

Chcem sa s vami podeliť o moje skusenosti s programovaním jednočipových osembitových procesorov od firmy ATMEL. Použil som procesor AT MEGA 16, ktorý sa dá kúpiť za menej ako 120 Sk,- . Pouzil som programátor AVR DRAGON, čoho som aj neskor olutoval lebo mi zhorel, to viete stál 2600,-

Ale všetkým vám odporúčam tento programátor Obrázok

je to odskusane funguje to na 100% ale nema podporu v AVR STUDIu, musíte si stiahnuť software ktorý funguje len pod linuxom vola sa UISP
a tu mate linku

Kód: Vybrať všetko

http://download.savannah.nongnu.org/releases/uisp/
Ja som ten program rozbehal pod linuxovym emulatorom s nazvom CYGWIN

Kód: Vybrať všetko

http://www.cygwin.com/
....ASSEMBLEROVY PROGRAM napisete v AVR STUDIu skompilujete ho a napalite do procesora pomocou programu UISP ktory spustite pod tym emulatorom

TU MATE PROGRAM NAPISANY V AVR ASSEMBLERI - ten program sluzi na vytvorenie svetelneho efektu takzvaneho "svetelneho hada" s osmymi LED diodami

Kód: Vybrať všetko

.INCLUDE "m16DEF.inc"


.DEF PRVY =R17
.DEF DRUHY =R18
.DEF TRETI =R19

.DEF BUFFERA =R20
.DEF BUFFERB = R21
.DEF PORTBS = R22
.DEF TEMP =R23

RESET:

SER PORTBS
LDI PRVY , 0b00000001
OUT DDRB , PORTBS
OUT PORTB , PRVY


PAUZA:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA


CLR BUFFERA
CLR BUFFERB

A:
LDI DRUHY , 0b00000010
OUT PORTB , DRUHY


PAUZA2:

INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA2

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA2

CLR BUFFERA
CLR BUFFERB



TRETIA:
LDI TRETI , 0b00000100
OUT PORTB , TRETI

PAUZA3:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA3

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA3

CLR BUFFERA
CLR BUFFERB




STVRTY:
LDI TRETI , 0b00001000
OUT PORTB , TRETI

PAUZA4:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA4

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA4

CLR BUFFERA
CLR BUFFERB


PIATY:
LDI TRETI , 0b00010000
OUT PORTB , TRETI 

PAUZA5:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA5

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA5

CLR BUFFERA
CLR BUFFERB


SIESTY:
LDI TRETI , 0b00100000
OUT PORTB , TRETI

PAUZA6:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA6

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA6

CLR BUFFERA
CLR BUFFERB

SIEDMY:
LDI TRETI , 0b01000000
OUT PORTB , TRETI

PAUZA7: 
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA7

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA7

CLR BUFFERA
CLR BUFFERB

OSMY:
LDI TRETI , 0b10000000
OUT PORTB , TRETI


PAUZA8:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA8

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA8

CLR BUFFERA
CLR BUFFERB








DESIATY:
LDI TRETI , 0b01000000
OUT PORTB , TRETI

PAUZA10:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA10

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA10

CLR BUFFERA
CLR BUFFERB

JEDENASTY:
LDI TRETI , 0b00100000
OUT PORTB , TRETI

PAUZA11:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA11

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA11

CLR BUFFERA
CLR BUFFERB


DVANASTY:
LDI TRETI , 0b00010000
OUT PORTB , TRETI

PAUZA12:

INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA12

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA12

CLR BUFFERA
CLR BUFFERB



TRINASTY:
LDI TRETI , 0b00001000
OUT PORTB , TRETI

PAUZA13:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA13

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA13

CLR BUFFERA
CLR BUFFERB


STRNASTY:
LDI TRETI , 0b00000100
OUT PORTB , TRETI

PAUZA14:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA14

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA14

CLR BUFFERA
CLR BUFFERB



PATNASTY:
LDI TRETI , 0b00000010
OUT PORTB , TRETI

PAUZA15:
INC BUFFERA
CP TEMP , BUFFERA
BRNE PAUZA15

INC BUFFERB
CP TEMP , BUFFERB
BRNE PAUZA15

CLR BUFFERA
CLR BUFFERB







JMP RESET
a takto vyzera program skompilovany (vygenerovany .hex subor ktory sa vypaluje do procesora)

Kód: Vybrať všetko

:020000020000FC
:100000006FEF11E067BB18BB43957417E9F7539581
:100010007517D1F74427552722E028BB439574175D
:10002000E9F753957517D1F74427552734E038BBC6
:1000300043957417E9F753957517D1F7442755275A
:1000400038E038BB43957417E9F753957517D1F726
:100050004427552730E138BB43957417E9F753958A
:100060007517D1F74427552730E238BB43957417ED
:10007000E9F753957517D1F74427552730E438BB76
:1000800043957417E9F753957517D1F7442755270A
:1000900030E838BB43957417E9F753957517D1F7D6
:1000A0004427552730E438BB43957417E9F7539537
:1000B0007517D1F74427552730E238BB439574179D
:1000C000E9F753957517D1F74427552730E138BB29
:1000D00043957417E9F753957517D1F744275527BA
:1000E00038E038BB43957417E9F753957517D1F786
:1000F0004427552734E038BB43957417E9F75395E7
:100100007517D1F74427552732E038BB439574174C
:10011000E9F753957517D1F7442755270C9400003C
:00000001FF

LED DIODY SA PRIPOJA K PORTU D PROCESORA ATMEGA 16


Popis procesoru a instrukcny subor najdete tu

Kód: Vybrať všetko

http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf
Napísať odpoveď