> Und dann wäre ich sehr dankbar, wenn mir mal
> jemand mal verständlich und vielleicht mit einem Schnipdel Code das
> lesen von einem AD Wert erklärt und wie ich den in eine Variable
> bekomme.
Nehmen wir an, die Variable wäre das Register r16 und hieße 'temp'.
Dann liest du mit
den momentanen Wert des ADC in die Variable temp ein. Das Dumme ist
nur, dass du dem ADC vorher sagen musst, welches Signal er wandeln soll
und was er als Referenz nehmen soll. Also schau dir das Register
'admux' im I/O-Bereich an, da gibt es Bits für die Referenzquelle,
die Messquelle und einen Schalter (adlar) mit dem du festlegen kannst,
ob das 10-Bit-Ergebnis im 16-Bit-Registerpaar 'adch:adcl'
rechtsbündig oder linksbündig justiert werden soll. Benötigt man nur 8
Bit Auflösung, dann justiert man links (adlar gesetzt) und liest nur
adch aus.
Dann muss der ADC auch noch eingeschaltet werden. Dazu gibt es das
Register 'adcr'. In der ersten 'Verständnis-Stufe' schaltet man den
ADC erstmal auf Dauerbetrieb. Dazu setzt man die Bits
- aden (Einschalten)
- adsc (Starten)
- adfr (Free Run, Dauerlauf)
und die Bits für einen geeigneten Vorteiler. Dabei soll der ADC einen
Takt von etwa 50kHz..200kHz bekommen. Der Tiny15 läuft (wenn er
kalibriert wurde) mit 1,6MHz. Um auf 100kHz ADC-Takt zu kommen braucht
man Vorteiler 1:16.
Aber was schreibe ich das hier eigentlich alles nochmal? Analysiere
doch einfach mal das Programm im Anhang, da sind etliche Dinge erklärt,
auch wie man sich diverse erforderliche Daten aus dem Datenblatt holt.
Zu jedem ASM-Befehl gibt es einen Kommentar, teils mit Verweis auf
betreffende Stellen im Datenblatt. Das Programm liest 2 Potis per ADC
ein, liest einen Taster ein und steuert 2 LEDs, die nach einer
bestimmten (einstellbaren) Zeit wieder ausgehen.
Um die einzelnen Bits zu verstehen, ist nur minimales Englisch
erforderlich. Ich kann auch kein Englisch und kämpfe mich mit einem
Wörterbuch durch die Datenblätter, was ich inzwischen immer seltener
brauche. Das Datenblatt ist ein absolutes Muss, ohne diese
Informationen wirst du in keiner Programmiersprache zu einem
befriedigenden Ergebnis kommen.
Also viel Spaß...
...