-
Assembler ADC Mega32
Hallo,
ich habe mir ein RN-Control Mega32 zugelegt. Ich wollte den Controller in Assembler programmieren und habe mir auch schon das Tutorial durchgelesen. Jedoch werde ich daraus nicht richtig schlau. Das Problem ist, ich weiß nicht was ich in den Header schreiben soll (Include, Device ,...). In Assembler habe ich bis jetzt nur mit einem 8085 programmiert.
Was kommt da jetzt alles vor das eigentliche Programm? Und soll ich am Besten das Ende des Programms mit einer Endlosschleife versehen?
Vielen Dank für die Hilfe im voraus!
(SuFu habe ich schon benutzt)
-
LEDs
So, nach mehreren Stunden und Versuchen, habe ich das Board endlich zum Laufen gekriegt. Nur habe ich ein Verständnisproblem.
DDRB : Damit setze ich fest ob Eingang oder Ausgang am Port. Richtig?
PortB: Damit sage ich ob zB. LED an Bitstelle1 leuchten soll, wenn ich 0x01 setze. Richtig?
PINB : Zum Einlesen des Port B. Richtig? Oder wozu dient dieser?
Nur habe ich das Problem, wenn ich eingebe:
ldi R16, 0xFF
out DDRC, R16
ldi R16, 0x00
out PortC, r16
dass dann alle LEDs leuchten. Ich dachte die dürften nur leuchten wenn ich den PortC mit 0xFF beschreibe.
IM AVRStudio wird mir angezeigt, dass nur DDRC 11111111 ist. PORTC und PINC sind alle 0.
Wieso leuchten alle LEDs, wenn ich PORTC mit 0x00 beschreibe??? :-s
-
Soweit ist alles richtig.
Dass die LEDs leuchten, wenn Du den Port mit 0x00 beschreibst, leigt daran, dass die LEDs mit der Annode über einen Vorwiderstand fest an +5V liegen und die Kathode am Port angeschlossen ist. Somit schaltest Du mit '0' die LED ein und mit '1' wieder aus. Das ist eine übliche Praxis bei Mikrocontrollern.
askazo
-
Ok. Danke!
Aber hat das dann was mit den Pull-ups zu tun, dass die LEDs bei 0 leuchten?
-
Nein, mit den Pull-Ups hat das nichts zu tun. Wenn die Ports auf 0 stehen, haben sie quasi Masse-Potential. Der Strom fließt also von +5V über den Vorwiderstand und die LED und dann durch den Mikrocontroller nach Masse.
-
Habs verstanden.
Nur habe ich jetzt ein anderes Problem. Wie bewerkstellige ich, dass ich die 5 Taster vom Board nehmen kann um die LEDs damit zu schalten. Mein Problem fängt schon damit an, dass ich nicht weiss wie ich das in Assembler deklarieren kann.
Sind die 5 Taster alle auf einer einzigen I/O-Leitung? Ich kann nämlich eine Spannung von 0,32V vom Taster 5 mit jeweils Schritten von 0,32 V bis Taster 1 am PA7 messen, wenn ich auf die jeweiligen Tasten drücke.
-
Schau Dir am besten mal in Ruhe den Schaltplan an.
Die Taster steuern einen Spannungsteiler, der vom ADC7 (Sonderfunktion von PA7) ausgewertet werden kann. Du musst Dich also ein wenig mit der Funktion des ADCs beschäftigen, um die Taster auswerten zu können.
Ich bin leider nicht so fit in Assembler (programmiere in C) von daher kann ich Dir da leider nicht allzuviel weiterhelfen.
askazo
-
Na dann, werde ich mal mein Glück versuchen. Danke für die Hilfe!
-
Wie kann man denn mit einem Atmel AVR (mega8) einen strom messen? geht um eine wiederstandskette, an der schalter sind und alles an einem I/O pin hängt. wer kann mir da mal ein paar zeilen assembler zu geben?
MfG becki
-
Was willst Du jetzt messen? Strom oder Spannung ?
Gruß Sebastian