Forum: Mikrocontroller und Digitale Elektronik Bascom, Adc am Attiny85


von Herr U. (mxvalentine)


Lesenswert?

Hallo zusammen,

hab folgendes vor, am PB 3 eine Spannung einlesen (0-5V) am PB 4 eine 
LED einschalten wenn PB 3  > 2.5 V, und das alles in Bascom (hab gerade 
erst Anfangen also bin noch in der Grundlagenforschung).
Programm sieht bis jetzt so aus, funktioniert allerdings nicht, hat 
jemand eine Idee was ich falsch mache? :( Led leuchtet einfach 
immmer......

$regfile = Attiny85.dat
Config Pinb.4 = Output

Dim W As Word
Config Adc = Single , Prescaler = Auto
Start Adc

Do
W = Getadc(3)
If W > 500 Then
Portb.4 = 1
Else
Portb.4 = 0
End If

Loop
End

Danke für die Hilfe und Grüße

von 1st (Gast)


Lesenswert?

Funktioniert es denn im BASCOM-Simulator?
Wenn ja, dann Hardware überprüfen.

von Hannes L. (hannes)


Lesenswert?

Config-Fehler? Schau Dir mal im Datenblatt den Unterschied zwischen 
Portb, Pinb und Ddrb an.

Ich nutze Config nicht zum Initialisieren von Portpins, das mach' ich 
direkt, so wie in ASM. Daher kann ich mich auch irren.

MfG

von MWS (Gast)


Lesenswert?

*$regfile = Attiny85.dat* ohne Anführungszeichen ist falsch. In dieser 
Form wird es ignoriert und der per Options eingestellte Chip verwendet. 
Wenn das nun ein anderer ist, wird für den tatsächlichen Chip 
unpassender Code produziert.

von Herr U. (mxvalentine)


Lesenswert?

Danke schonmal für die Antworten, aber die Fehler kann ich ausschlißen:

-unter Optionen ist auch der Attiny85 eingestellt
-die Konfi von Pinb.4 muss auch richtig sein, da in einem anderen 
Programm er einwandfrei angesteuert wird
-die Hardware ist auch fehlerfrei, bzw hat so funktioniert in jedem 
zuvor geschriebenen Programm, lediglich ein 0-5V Signal ist 
hinzugekommen, und das sind auch wirklich 0-5V ich hab ein Messgerät 
dran...


weiß vielleicht jemand wo der Fehler ist?
oder würdet ihr das Programm anders schreiben?



Liebe Grüße

von Herr U. (mxvalentine)


Lesenswert?

Bitte irgendwer :D

von Paul Baumann (Gast)


Lesenswert?

Zunächst hat MWS Recht: Die Anführungsstriche müssen da sein:
$regfile = "Attiny85.dat"
sonst läßt es sich gar nicht kompilieren.

In der Simulation läuft das Programm aber. (Ich habe keinen Attiny85
zu Testen in Natura hier)

MfG Paul

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

Da ist noch ein Bild von der Simulation.
MfG Paul

von Herr U. (mxvalentine)


Lesenswert?

Hallo Paul,

als bei mir funktioniert es nicht, was hast du anders gemacht? O.o

von Joe (Gast)


Lesenswert?

Die Angabe für Uref fehlt.

von Herr U. (mxvalentine)


Lesenswert?

Ja hab ich probiert, welche muss ich denn nehmen wenn ich einfach mit 
der Eingangsspannung vergleichen will?
 mit avcc geht es nicht :(

von Joe (Gast)


Lesenswert?

Geht doch ohne Uref.

So geht es:

$regfile = "Attiny85.dat"
Config Pinb.4 = Output

Dim W As Word

Config Adc = Single , Prescaler = Auto
Start Adc

Do
W = Getadc(3)
If W > 500 Then
Portb.4 = 1
Else
Portb.4 = 0
End If

Loop
End

von Herr U. (mxvalentine)


Lesenswert?

Hmm nein nicht so richtig, die Led wird zwar heller und dunkler aber 
nicht bei ca 2.5 Volt, sondern bei 1.25 ca, warum ist das so?
und warum geht die Led nicht ganz aus?

Liebe Grüße

von Anselm 6. (anselm68)


Lesenswert?

Hast du die LED auch mit einem Serienwiderstand versehen?
Irgendwas ab 270 Ohm

Config Adc = Single , Prescaler = Auto , aref = vcc <- sowas fehlt
sonst nimmt er vielleicht die interne Referenz..

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.