Forum: Mikrocontroller und Digitale Elektronik Kleines Problem mit Attiny13 ADC und PWM


von Markus B. (Firma: Home) (sukramb)


Lesenswert?

Hallo

Ich stehe aufm Schlauch, ich wollte eine PWM ( Lüfter ) Steuern und 
dafür 2 Messwerte nehmen. Einmal ein Poti für den Sollwert ( 
Messergebnis1 ) und einen LM335 als Istwert ( Messergebnis2 ) und die 
Differenz dann als PWM für einen Lüfter.
Ich bekomme aber in Bascom eine Fehlermeldung und ich verstehe nicht 
wieso :(
Ich bin kein guter Programmierer, das weis ich... aber so etwas 
einfaches hatte ich mir schon zu getraut ...

( assigment Error [Messergebnis1-Messergebnis2:0 Dif:2], in File ....

$regfile = "attiny13.dat"
$crystal = 12000000
$hwstack = 10

Config Portb.0 = Output
Config Portb.2 = Input
Config Portb.4 = Input

Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , 
Compare B Pwm = Clear Down

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Messergebnis1 As integer
Dim Messergebnis2 As Integer
Dim Dif As Byte

Do

Messergebnis1 = Getadc(2)
Messergebnis2 = Getadc(1)

Messergebnis1 - Messergebnis2 = Dif

Pwm0a = Dif * 4


Loop
End

von Paul B. (paul_baumann)


Lesenswert?

Du hast "Dif" als Byte dimensioniert, aber die beiden Variablen, aus 
denen das berechnet wird, als Integer. Mach mal "Diif" auch zu einem 
Integer.

Außerdem ist die Formel verkehrt rum:
Messergebnis1 - Messergebnis2 = Dif

Probier es mal rosum:

Dif = Messergebnis1 - Messergebnis2

mfG Paul

: Bearbeitet durch User
von Baku M. (baku)


Lesenswert?

Markus B. schrieb:
> Messergebnis1 - Messergebnis2 = Dif

Ich kann zwar kein Bascom, aber normalerweise wird von rechts nach 
links zugewiesen (Stichwort: lvalue).

Wette ein kaltes Bier, daß Bascom nicht mehr meckert, wenn du:

Dif = Messergebnis1 - Messergebnis2

schreibst...

Edith:
Ah, der Paul hat's gerade auch noch dazugeschrieben :-)

: Bearbeitet durch User
von Markus B. (Firma: Home) (sukramb)


Lesenswert?

Och Nöööö... Schäm... Ich schiebe das jetzt mal aufs Wetter.
Natürlich lag es daran :(

Vielen Dank euch :)

mfg

Markus

von S. Landolt (Gast)


Lesenswert?

Werch ein Illtum!

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.