Forum: Mikrocontroller und Digitale Elektronik adc an atiny13


von Bernhard F. (1atmel2)


Angehängte Dateien:

Lesenswert?

anfangs wollte ich noch erwähnen, dass ich das forum wirklich genial 
finde.

ich würde gerne mit einem tiny 13 eine analoge spannung messen und dann
auswerten bzw abhaengig vom wert, led's einschalten.
soweit mir bekannt ist, kann man den adc mit studio vier nicht 
simulieren.
für den atmega 8 habe ich eine wirklich gute beschreibung gefunden, aber 
für den tiny 13 nur mit pwm etc.
aber ich hätte das ganze gerne noch einfacher für den anfang.

habe ein listing im anhang und hätte gerne gewusst, ob es fehlerfrei ist 
bzw
ob sich mein wert auch im 'adwert' befindet.
könnte das bitte jemand überprüfen.


gruss bernhard.

von Hannes L. (hannes)


Lesenswert?

> habe ein listing im anhang und hätte gerne gewusst, ob es fehlerfrei ist

So richtig nicht...
1
; admux auf adc3 einstellen
2
; referenz=ub, ergebnis links justieren adlar
3
ldi rmp,0b00100001
4
out admux,rmp

Schau nochmal im Datenblatt nach, ich vermute, Du aktivierst ADC1.
1
; staendiges lesen des ad wertes
2
loop:
3
  in adwert, adch
4
  rjmp loop

Du musst dem ADC schon Zeit geben, die Wandlung durchzuführen.

Dazu gibt es verschiedene Möglichkeiten. Im Free-Run-Mode kann man den 
ADC mittels Timer (der nebenher noch andere Dinge erledigt) auslesen. 
Bei Single-Conversion kann man mit Interrupt oder Busywait (Abfrage des 
Bits ADSC im Register ADCSRA) arbeiten. Letzteres geht auf 0, wenn der 
ADC fertig ist.

Es geht natürlich auch mit einer Warteschleife, das ist allerdings eine 
Sackgasse, das rächt sich, wenn der Controller irgendwann mal etwas mehr 
tun soll.

...

von Bernhard F. (1atmel2)


Angehängte Dateien:

Lesenswert?

danke an hannes lux, schaltung funktioniert.
habe noch was passendes in avr-praxis forum gefunden.
asm listing im anhang.

gruss bernhard.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.