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
Funktioniert es denn im BASCOM-Simulator? Wenn ja, dann Hardware überprüfen.
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
*$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.
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
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
Hallo Paul, als bei mir funktioniert es nicht, was hast du anders gemacht? O.o
Ja hab ich probiert, welche muss ich denn nehmen wenn ich einfach mit der Eingangsspannung vergleichen will? mit avcc geht es nicht :(
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.