Hallo!
Ich habe ein kleines Anfängerproblem. Welche INCLUDE muss ich für den AT90USB162 verwenden um ein Assemblerprogramm schreiben zu können? Ich verwende AVRStudio 4.13 falls das relevant ist.
Ich will momentan nur ein paar Leds ein und ausschalten, was ja eigentlich nicht so schwer sein sollte.
Vor kurzem habe ich mir einen eStick gekauft, falls das jemand kennt (5-10 euro, bei so einem Preis musste ich zuschlagen ^^), da ist eben dieser Controller eingebaut.
Code:
.NOLIST ; List-Output unterdrücken
.INCLUDE <m162def.inc>
.LIST ; List-Output wieder aufdrehen
;Registeraufteilung
.def temp = r16
.DSEG ; Schreibt Daten in den SRAM
.CSEG ; was nun folgt, gehört in den FLASH-Speicher
.org 0x0000
rjmp Initialisierung
Initialisierung:
;Stackpointer
ldi temp, LOW(RAMEND)
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
;Aus/Eingänge
ldi temp, 0b11111111
out DDRB, temp ; Ausgang
out DDRC, temp
Hauptprogramm:
sbi PortC, 2
sbi PortB, 0
cbi PortB, 1
sbi PortB, 2
cbi PortB, 3
sbi PortB, 4
cbi PortB, 5
sbi PortB, 6
cbi PortB, 7
Ende:
rjmp Ende
Diesen Code habe ich getestet, was mcih wundert das absolut nichts am ausgang passiert, weder die DDR bits werden gesetzt, noch die Port bits (HILFE)
Bitte helft mir, kann ja nicht so schwer sein 4 Leds einzuschalten
mfg
Gerko
EDIT:
Ok, ich hab jetzt die richtige Include datei gefunden (USB162def.inc klingt irgendwie logisch, ist allerdings im AVR 2 oderner gelagert, warum auch immer)
das Programm funktioniert auf dem e-Stick allerdings immer noch nicht:
Code:
.NOLIST ; List-Output unterdrücken
.INCLUDE <usb162def.inc>
.LIST ; List-Output wieder aufdrehen
;Registeraufteilung
.def temp = r16
;.DSEG ; Schreibt Daten in den SRAM
.CSEG ; was nun folgt, gehört in den FLASH-Speicher
.org 0x0000
rjmp Initialisierung
Initialisierung:
;Stackpointer
ldi temp, LOW(RAMEND)
out SPL, temp
ldi temp, HIGH(RAMEND)
out SPH, temp
;Aus/Eingänge
ldi temp, 0b11111111
out DDRB, temp ; Ausgang
sbi DDRC, 2
sei
Hauptprogramm:
sbi PortC, 2
sbi PortB, 0
cbi PortB, 1
sbi PortB, 2
cbi PortB, 3
sbi PortB, 4
cbi PortB, 5
sbi PortB, 6
cbi PortB, 7
Ende:
rjmp Ende
Das ist mein code, in der Simulation funktioniert es, allerdings nicht auf dem e-Stick
Das ist der Schaltplan dazu:
http://embsys.technikum-wien.at/staf..._schematic.pdf
ich weiß nicht ganz warum es nicht funktioniert, wenn ich PortC2 setze, müssten die Leds aktiviert sein (so versteh ich das zumindest)
hat jemand eine Idee was ich noch anders machen muss?
mfg
Gerko
Lesezeichen