Na procesorze AT89S52 pisze program sterujący dwoma wiatrakami poprzez tranzystory w zależności od temperatury. Czyli jak najmniejsze obroty, temperatura w górnej dopuszczalnej granicy, głośność jak najniższa. Dopiero raczkuje w mikrokontrolerach i bascomie. Napisalem taka oto procedurke:
Ogolnie rzecz biorąc to działa, ale jest to rozwaizanie na jeden wentylator. Jak zrobic aby jednoczesnie PWM dzialal mi na dwa kanaly niezaleznie, tj. na jednym kanale jedno wypelnienie, na drugim inne wypelnienie. Jest jakas obsluga wielowątkowości w bascomie? A moze jakies inne rozwiazania? Z gory dzieki!
Dim W As Byte 'wypelnienie w %
W = 80
Dim F As Byte 'czestotliwosc w Hz
F = 10
Dim T As Single 'okres w s
Dim T1 As Single 'pomocnicza
Dim I As Single
Pwm:
Do
I = 0
T = 1 / F
T1 = W / 100 'T=(1/f)*(w/100)
T = T * T1
P1.0 = 1
While T > I 'sterowanie czasem impulsu
Waitms 1
I = I + 0.001 'i=i+1ms
Wend
I = 0
T = 1 / F
T1 = 100 - W 'T=(1/f)*((100-w)/100)
T1 = T1 / 100
T = T * T1
P1.0 = 0
While T > I 'sterowanie czasem braku impulsu
Waitms 1
I = I + 0.001
Wend
Loop Ogolnie rzecz biorąc to działa, ale jest to rozwaizanie na jeden wentylator. Jak zrobic aby jednoczesnie PWM dzialal mi na dwa kanaly niezaleznie, tj. na jednym kanale jedno wypelnienie, na drugim inne wypelnienie. Jest jakas obsluga wielowątkowości w bascomie? A moze jakies inne rozwiazania? Z gory dzieki!