Блин, запутался...
Целый день провел за программой... Не чего не получается... Я фьюзы на атмеги 16 не прошивал, от это влияет работа робота ?
Схему полностью проверил, всё работает! RC5 модуль собрал по даташиту tsop 1736...
ШИМ не использую... Помогите плиззззззззззз....
ДД подключаю по программе и схеме, всё правильно..
ДД проверил для робота BEAM, подключил фотодиод и светодиод без МК, работает! т.е. ДД живой на 100%
Может в программе что то не то? посмотрите плиз.
У меня только 3е теории:
1) У меня пульт не на 36khz
2) У меня программа не правильная..
3) У меня TSOP сгорел или не работает!
Уже на грани срыва... Может быть RC5 нужно подключать не по даташиту tsopa?
Порты проверил светодиодом.. работают шикарно!
Может подключить SHARP ? у меня он есть!
- Код: Выделить всё • Развернуть
$regfile = "m16def.dat" ' файл спецификации Меги8
$crystal = 16000000 ' указываем на какой частоте будем работать
'----------------------------------------------------------------------------
Config Pina.1 = Output : Drl Alias Porta.1 'ногу сконфигурировали как выход и обозвали Drl
Config Pina.2 = Output : Drr Alias Porta.2 'ногу сконфигурировали как выход и обозвали Drr
Config Pina.3 = Output : Dre Alias Porta.3 'ногу сконфигурировали как выход и обозвали Dre
Config Pina.4 = Output : Drw Alias PortA.4 'ногу сконфигурировали как выход и обозвали Drw
'----------------------------------------------------------------------------
Dim Speed As Byte
Speed = 200 ' указываем скорость робота
Config Rc5 = Pina.0
Enable Interrupts
Dim Address As Byte , Command As Byte
Print "Start" ' выводим в терминал отладочное сообщение
Do
Gosub Прием_rc5
If Command = 255 Then
Gosub Стоп
Waitms 0
Elseif Command = 32 Then
Gosub Прямо
Waitms 0
Elseif Command = 33 Then
Gosub Назад
Waitms 0
Elseif Command = 17 Then
Gosub Влево
Waitms 0
Elseif Command = 16 Then
Gosub Вправо
Waitms 0
End If
Loop
Прием_rc5:
Getrc5(address , Command)
If Address <> 255 And Command <> 255 Then
Command = Command And &B01111111
'Print Chr(12); ' выводим в терминал символ
'Print "Address - " ; Address; ' выводим в терминал адрес
'Print "Command - " ; Command; ' выводим в терминал номер команды
End If
Return
Влево:
Drl = 0 : Drr = 1 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Вправо:
Drl = 1 : Drr = 0 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Прямо:
Drl = 1 : Drr = 0 : Dre = 1 : Drw = 0 : Pwm1b = Speed : Pwm1a = Speed:
Return
Назад:
Drl = 0 : Drr = 1 : Dre = 0 : Drw = 1 : Pwm1b = Speed : Pwm1a = Speed:
Return
Стоп:
Drl = 0 : Drr = 0 : Dre = 0 : Drw = 0 : Pwm1b = 0 : Pwm1a = 0:
Return
Помогите, а то я уже в шоке!