Witam mam problem:
napisałem program do regulacji pwm wg czujnika haltronowego.
Ale nie działa nie wiem czemu tzn
ma być gdy wartość z halotronu jest 844 to pwm ma być 0 a gdy jest 464 na hallotronie to pwm 1024 ale działa tak że nie działa tzn przy 844 jest 1013 a przy 464 jest 1024. Więc nie rozumiem tego liczę na wasz pomoc...
Tematy programowania mikrokontrolerów proszę poruszać w dziale Mikrokontrolery. Przeniosłem z Programowanie ogólne.
[Dr.Vee]
napisałem program do regulacji pwm wg czujnika haltronowego.
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Enable Interrupts
Config Portb.0 = Output
Dim B As Byte
Dim Loados As Byte
Dim A As Word
Dim Uw As Word
Dim X As Word
Dim C As Single
Dim U As Single
Dim Aku As Single
Cls
Cursor Off
Cls
Lcd "E-Bike By:Karek"
Waitms 15
Lowerline
Gosub Loading
Waitms 100
Cls
Do
Cls
Gosub Licz
Locate 1 , 1
Lcd "PWM=" ; A
Locate 2 , 1
Lcd "U=" ; Fusing(u , "#.#") ; "V"
Locate 1 , 9
Lcd "Aku=" ; Fusing(aku , "#.#") ; "V"
Locate 2 , 9
Lcd "Hall=" ; X
Incr B
If B = 5 Then
Toggle Portb.0
B = 0
End If
Waitms 100
Loop
Loading:
For Loados = 1 To 16
Lcd Chr(0)
Waitms 80
Next Loados
Return
Licz:
A = Getadc(0)
X = Getadc(0)
Uw = Getadc(5)
U = Uw * 0.049
Aku = U / 3
C = A
C = C - 464
C = C * 2.66666666666666666666666666666666
A = C
If A < 950 Then A = 1023
'A = 1024 - A
Pwm1a = A
Return
Ale nie działa nie wiem czemu tzn
ma być gdy wartość z halotronu jest 844 to pwm ma być 0 a gdy jest 464 na hallotronie to pwm 1024 ale działa tak że nie działa tzn przy 844 jest 1013 a przy 464 jest 1024. Więc nie rozumiem tego liczę na wasz pomoc...
Tematy programowania mikrokontrolerów proszę poruszać w dziale Mikrokontrolery. Przeniosłem z Programowanie ogólne.
[Dr.Vee]