Gast
#319469
Hi, also ich habe den Auftrag ein Lauflich zu Programmieren auf einem ATmega8. Ich habe 2 Lichtmodis mir ausgedacht und wollte diese jeweils durch einen schalter von einander trennen. Ich habe das Programm soweit geschrieben, allerdings läuft es nicht auf meinem mikrocontroller. Könnte bitte einer mal ein Auge auf das Programm werfen und mir sagen was ich verbessern muss. Bin am verzweifeln -.- Code: ;*************************************; ;*Programm: Knight Rider Lauflicht RL*; ;*************************************; ;*Autor: Heller Tobias *; ;*Datum: 16.02.2006 *; ;*Letzte Änderung: 16.02.2006 *; ;*Version: 1.0 *; ;*************************************; .include "m8def.inc" ldi r16, 0xff ;Port D wird als Eingang deklariert out DDRD, r16 ldi r16, 0x00 out ddrb, r16 ldi r19,LOW(RAMEND) ;Initailsierung für Unterprogramme out SPL, r19 ldi r19,HIGH(RAMEND) out SPH, r19 start: rjmp schalter Funky: rcall FunkyTown ;Hier steht die Procedure zu dem Lauflichtmodus KnightRider KnightRider: ldi r16, 0b10000000 ;Die LED Nr.1 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b01000000 ;Die LED Nr.2 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00100000 ;Die LED Nr.3 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00010000 ;Die LED Nr.4 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00001000 ;Die LED Nr.5 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000100 ;Die LED Nr.6 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000010 ;Die LED Nr.7 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000001 ;Die LED Nr.8 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000001 ;Die LED Nr.8 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000010 ;Die LED Nr.7 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00000100 ;Die LED Nr.6 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00001000 ;Die LED Nr.5 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00010000 ;Die LED Nr.4 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b00100000 ;Die LED Nr.3 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b01000000 ;Die LED Nr.2 leuchtet out PORTD, r16 rcall Warteschleife ldi r16, 0b10000000 ;Die LED Nr.1 leuchtet out PORTD, r16 rjmp start ;Hier steht die Procedure zu dem Lauflichtmodus "Funky Town" Funkytown: ldi r16, 0b00011000 ;Die LED Nr.1 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b00100100 ;Die LED Nr.2 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b01000010 ;Die LED Nr.3 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b10000001 ;Die LED Nr.4 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b01000010 ;Die LED Nr.5 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b00100100 ;Die LED Nr.6 leuchtet out PORTd, r16 rcall Warteschleife ldi r16, 0b00011000 ;Die LED Nr.7 leuchtet out PORTd, r16 rjmp start ;Procedur für DIE Warteschleife Warteschleife: loop2: ldi r17,0x01 ldi r18,0x01 loop1: dec r18 brne loop1 dec r17 brne loop2 ret Schalter: in r20, portb sbis portb, 1 rjmp KnightRider rjmp Funkytown ich weiß, dass das Programm sehr simpel und umständlich geschrieben ist, also bitte keine Kommentare von wegen "was bistn du fürn Depp" oder so ^^ schonmal danke im vorraus. mfg Tobi