hallo,
ich programmiere seit zwei tagen in assembler und ich bekomme es nicht hin eine led blinken zu lassen.
hier mein code
ich hoffe dass ich wenigstens einigermasen alles deklariert habeCode:.NOLIST ; List-Output unterdrücken .INCLUDE <m32def.inc> ; das gibt es für jeden Controllertyp .LIST ; List-Output wieder aufdrehen .CSEG ; was nun folgt, gehört in den FLASH-Speicher .org $000 .EQU fq = 16000000 ; Quarzfrequenz festlegen ;------------------------------------------------------ ; Start Adresse 0000 ;------------------------------------------------------ RESET: rjmp INIT ; springen nach "INIT" ;------------------------------------------------------ ; ISR VECTORS ;------------------------------------------------------ ; ..... hier kommen dann die Sprungadressen für die Interrupts rein ; dazu kommen wir noch .org $016 rjmp wait .ORG INT_VECTORS_SIZE ; dadurch haben wir für die Vektoren Platz gelassen wait: ;timer Warteschleife inc r17 ;r17 um eins erhöhen cpi r17,61 ;vergleichen von r17 mit einer variablen breq main ;wenn r17 gleich variable dann springe zu main reti ;rücksprung INIT: ;------------------------------------------------------ ; INITIALIZE ;------------------------------------------------------ .DEF Stackpointer = r24 ldi r24,high(RAMEND) ;Stack Pointer setzen out SPH,r24 ; "RAMEND" ist in m8def.inc (s.o.) festgelegt ldi r24,low(RAMEND) ; out SPL,r24 ; sei ldi r16,0b00000101 out TCCR0,r16 ;101: Clock = Taktfrequenz / 1024 ldi r16,0b00000010 out TIMSK,r16 ;1: Int bei Überlauf ldi r16,0b00000000 out TIFR,r16 ldi r16,0b10000000 out ddrd,r16 ;portd.7 = output ldi r16,0 out portd,r16 ;portd.7 = low main: clr r17 ;r17 wieder auf null setzen com r16 ;invertieren des registers r16 main1: out portd,r16 ;invertieren von portd rjmp main1 ;rücksprung zu main1
währe schön wenn ihr mir helfen könnt
mfg franzl







Zitieren

Lesezeichen