Forum
C-Programm für Atmel90CAN128 (Elektronik)
» Danke schon mal für die hilfe
»
» noch eine Frage
»
» Müssen wir dem Microcontroller sagen, dass er die Eingänge hat oder reicht
» es einfach, wenn wir, wie oben die Ausgänge DDRF = 0xff nennen?
» Für die Eingänge dann DDRE = 0x00.
---
Das muss vorher dem Prozessor bekannt gemacht werden,
welcher Pin Ausgang ist, welcher Eingang.
Die Pins kannst einzeln konfigurieren durch Eingabe der Bit-Zahl.
Ich mache das in Form von binär - bit weise.
In hex wie du es andeutest geht auch, musst aber "rechnen".
in binär stellst einfach die 1 und 0 nebeneinander, um zu befehlen, was In oder Out ist.
---Beispiel mit einem PIC -- in ASM -- (leider stimmt hier der Tab-schritt nicht, aber das kannst sicher nachvollziehen)
; STATUS Register prüfen, ob vom Sleep Mode (Schlafmodus) oder von anderen Bedingungen
; ein Reset erfolgt.
;
movf.......STATUS, w ; hole Status ins Arbeitsregister und maskiere mit AND
andlw......b'11111000' ;
........; | | | | | | | | ______ C; R/W-x; Carry / #borrow bit; for ADDWF, SUBWF, RRF, RLF instr.;
........; | | | | | | | _______ DC; R/W-x; Digit Carry / #borrow bit; for ADDWF, SUBWF instr.;
........; | | | | | | ________ Z; R/W-x; Zero bit; -1- result of an arithm. or logic oper. is zero; -0- not zero;
........; | | | | | _________ #PD; R-1; Power-down bit; -1- after power-up or CLRWDT instr.; -0- by SLEEP instr;
........; | | | | __________ #TO; R-1; Time-out bit; -1- after power-up or CLRWDT or SLEEP instr.; -0- a WDT time-out;
........; | | | ___________ -res-; R/W-0;
........; | | ____________ -res-; R/W-0;
........; | _____________ GPUWF; R/W-0; -1- Reset due to wake up from Sleep on pin Change
........; ; -0- After power up or other Reset
---->
Ganz kurz zur Vorbereitung:
Im Compiler - Editor gibt es bei der Projekt Erstellung eine Unterstützung,
wo du angeben kannst welche Funktion der Chip als Grundeinstellung hat.
- also nach dem Reset.
Dann während den Arbeiten kommt es ja auch vor, dass das
entsprechende Port u.U. umgeschaltet werden muss.
Dann muss es, bevor die eigentliche Arbeit durchgeführt wird umgeschaltet werden,
und nach der Arbeit wieder zurück geschaltet werden.
Am besten gleich in der selben Unterroutine, bzw. wo du so
etwas bereits als Makro fertig hast nur zum Anspringen.
zB 1. Port-Pin ist Ausgang; 2. Port-Pin ist ADC
- aber! ADC ist ein Eingang, jedoch kein digitaler Eingang!
Und das muss dem Controller gesagt werden.
Im Controller Handbuch - nicht Datenblatt - steht es, wie man das macht.
Viel Spass mit dem Projekt.
Grüße
Gerald
--
...und täglich grüßt der PC:
"Drück' ENTER!
Feigling!"
Gesamter Thread:
