|
|
| Строка 23: |
Строка 23: |
| | {| | | {| |
| | |<source lang="vb"> | | |<source lang="vb"> |
| − | Dim Speed As Byte<br /> | + | Dim Speed As Byte |
| − | Speed = 70<br /> | + | Speed = 70 |
| | </source> | | </source> |
| | | | |
| Строка 31: |
Строка 31: |
| | | | |
| | Теперь собственно основной код программы | | Теперь собственно основной код программы |
| − | <blockquote> | + | {| |
| − | Do<br /> | + | |<source lang="vb"> |
| − | Drl = 0 'направление движения левого движка, в нашем с<code></code>лучае это прямо<br /> | + | Do |
| − | Drr = 0 'направление движения правого движка, в нашем случае это прямо<br /> | + | Drl = 0 'направление движения левого движка, в нашем с<code></code>лучае это прямо |
| − | Pwm1b = Speed : Pwm1a = Speed<br /> | + | Drr = 0 'направление движения правого движка, в нашем случае это прямо |
| − | Loop<br /> | + | Pwm1b = Speed : Pwm1a = Speed |
| − | </blockquote> | + | Loop |
| | + | </source> |
| | | | |
| | ---- | | ---- |
Версия 08:17, 6 апреля 2008
Задание №1 -=Учим МиниБот ехать прямо на заданной скорости=-
Указываем васику с каким крутым камнем ему прийдется иметь дело
| <source lang="vb">
$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 8000000 ' указываем на какой частоте будем работать
</source>
конфигурируем необходимые ноги
| <source lang="vb">
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 'ногу ШИМа правого движка сконфигурировали как выход
</source>
Объявляем переменную в которой будем держать текущую скорость
| <source lang="vb">
Dim Speed As Byte
Speed = 70
</source>
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.
0% это соответсвенно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.
Теперь собственно основной код программы
| <source lang="vb">
Do
Drl = 0 'направление движения левого движка, в нашем случае это прямо
Drr = 0 'направление движения правого движка, в нашем случае это прямо
Pwm1b = Speed : Pwm1a = Speed
Loop
</source>
Итого код должен выглядеть вот так
| <source lang="vb">
$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 8000000 ' указываем на какой частоте будем работать
'----------------------------------------------------------------------------
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
Do
Drl = 0 'направление движения левого движка, в нашем случае это прямо
Drr = 0 'направление движения правого движка, в нашем случае это прямо
Pwm1b = Speed : Pwm1a = Speed
Loop
</source>
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.
Обратно к уроку Урок №1
|
|
|
|
|