константин_KoSS_89 писал(а):неполучаеться связать програмный ШИМ и приём IR команд, вобще запутался. БрррррМяяяуу.....
Может, потому что они висят на одном и том же таймере?
константин_KoSS_89 писал(а):Нет, приём был в постоянном цикле, а шим я повесил на таймер0.....
GETRC5( address, command )
Uses
TIMER0
Since a timer is needed for accurate delays and background processing TIMER0 is used by this statement.
Also the interrupt of TIMER0 is used by this statement.
TIMER0 can be used by your application since the values are preserved by the statement but a delay can occur. The interrupt can not be reused.
Код: Выделить всё
$regfile = "m32def.dat"
$crystal = 4000000
Config Timer1 = Counter , Edge = Falling , Prescale = 1
Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portc.5 , Rs = Portc.6
Config Lcd = 16 * 2
Stop Counter1
Dim Speed As Single
Dim Speedo As Word
Dim Odo As Integer
Cls
Const 2pi = 6.28
Const R = 0.15
Do
Counter1 = 0
Start Counter1
Waitms 1000
Stop Counter1
Speed = Counter1
Speed = Speed / 4
Speed = Speed * 2pi
Speed = Speed * R
Speed = Speed / 1000
Speed = Speed * 3600
Speedo = Speed
Odo = Odo + Counter1
Locate 1 , 1
Lcd "U= :" ; Speedo ; " "
Locate 2 , 1
Lcd "odo: " ; Odo ; " "
Loop
End
Gryphon писал(а):Привет всем! Недавно решил на мотоцикл спроектировать полностью приборную панель .........
Sub Indication
Portd.4 = 1
Call Ones_digit
Waitms W
Portd.4 = 0
Portd.3 = 1
Call Tens_digit
Waitms W
Portd.3 = 0
Portb.6 = 1
Call Hundreds_digit
Waitms W
Portb.6 = 0
End Sub
Но более актуальной будет скорость если считать не кл-во импульсов за секунду, а считывать количество времени прошедшее от одного импульса до другого.