Задание№1-3 — различия между версиями
EdGull (обсуждение | вклад) |
SkyStorm (обсуждение | вклад) м |
||
(не показана 21 промежуточная версия 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Категория:МиниБот]] | [[Категория:МиниБот]] | ||
− | ''' | + | '''Задание№1-3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-'''<br /> |
Добавляем конфигурирование ноги RC5<br /> | Добавляем конфигурирование ноги RC5<br /> | ||
Строка 12: | Строка 12: | ||
Getrc5(address , Command) | Getrc5(address , Command) | ||
If Address <> 255 And Command <> 255 Then | If Address <> 255 And Command <> 255 Then | ||
+ | Command = Command And &B01111111 | ||
Print Chr(12); | Print Chr(12); | ||
Print "Address - " ; Address | Print "Address - " ; Address | ||
Строка 18: | Строка 19: | ||
</source> | </source> | ||
И снова наслаждаемся в гипертерминале какие мы умные. Потому что теперь мы знаем какая клавиша на нашем пульте имее какой код. | И снова наслаждаемся в гипертерминале какие мы умные. Потому что теперь мы знаем какая клавиша на нашем пульте имее какой код. | ||
− | У меня например вот такой пульт == http://minibot.appee.ru/product.php?prodid=12 ==<br /> | + | У меня например вот такой пульт <br />== http://minibot.appee.ru/product.php?prodid=12 ==<br /> |
− | [[Изображение:rc5-m.jpg|400px|thumb| | + | [[Изображение:rc5-m.jpg|400px|thumb]] |
+ | [[Изображение:terminalka2.GIF|400px|thumb|center]] | ||
Мне пока в нем достаточно клавиш | Мне пока в нем достаточно клавиш | ||
Вперед - код 32 | Вперед - код 32 | ||
Строка 25: | Строка 27: | ||
Влево - код 17 | Влево - код 17 | ||
Вправо - код 16 | Вправо - код 16 | ||
+ | |||
+ | В итоге у нас должен получиться вот такой код | ||
+ | <source lang="vb"> | ||
+ | $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить | ||
+ | $regfile = "m32def.dat" ' файл спецификации Меги32 | ||
+ | $crystal = 8000000 ' указываем на какой частоте будем работать | ||
+ | $baud = 2400 | ||
+ | |||
+ | '---------------------------------------------------------------------------- | ||
+ | Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down | ||
+ | Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl | ||
+ | Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr | ||
+ | Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход | ||
+ | Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход | ||
+ | '---------------------------------------------------------------------------- | ||
+ | |||
+ | Dim Speed As Byte | ||
+ | Speed = 70 | ||
+ | |||
+ | Config Rc5 = Pind.2 | ||
+ | Enable Interrupts | ||
+ | Dim Address As Byte , Command As Byte | ||
+ | |||
+ | Print "Start MiniBot" | ||
+ | |||
+ | Do | ||
+ | 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 | ||
+ | Loop | ||
+ | </source> | ||
+ | <big>'''Технически мы сейчас сделали мост RC5-UART ;-)'''</big> | ||
{{МиниБот Уроки и Задания}} | {{МиниБот Уроки и Задания}} | ||
+ | [[Категория:Basic]] |
Текущая версия на 13:27, 11 июля 2008
Задание№1-3 -=Учим МиниБот понимать команды RC5 от ИК-пульта обычного телевизора=-
Добавляем конфигурирование ноги RC5
<source lang="vb">
Config Rc5 = Pind.2
Enable Interrupts
Dim Address As Byte , Command As Byte
</source>
Добавляем в основной цикл вывод прилетевшей нам команды с пульта в уарт.
<source lang="vb">
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
</source>
И снова наслаждаемся в гипертерминале какие мы умные. Потому что теперь мы знаем какая клавиша на нашем пульте имее какой код.
У меня например вот такой пульт
== http://minibot.appee.ru/product.php?prodid=12 ==
Мне пока в нем достаточно клавиш
Вперед - код 32 Назад - код 33 Влево - код 17 Вправо - код 16
В итоге у нас должен получиться вот такой код <source lang="vb"> $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить $regfile = "m32def.dat" ' файл спецификации Меги32 $crystal = 8000000 ' указываем на какой частоте будем работать $baud = 2400
'---------------------------------------------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход '----------------------------------------------------------------------------
Dim Speed As Byte Speed = 70
Config Rc5 = Pind.2 Enable Interrupts Dim Address As Byte , Command As Byte
Print "Start MiniBot"
Do
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
Loop </source> Технически мы сейчас сделали мост RC5-UART ;-)
Уроки: | Урок №1, Урок №2 |
---|---|
Задания: | Задание№1, Задание№2, Задание№2-1, Задание№2-2, Задание№3, Задание№4 |