Задание№1-1 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
Строка 62: Строка 62:
  
 
Do
 
Do
Drl = 0  'направление движения левого движка, в нашем случае это прямо
+
  Drl = 0  'направление движения левого движка, в нашем случае это прямо
Drr = 0  'направление движения правого движка, в нашем случае это прямо
+
  Drr = 0  'направление движения правого движка, в нашем случае это прямо
Pwm1b = Speed : Pwm1a = Speed
+
  Pwm1b = Speed : Pwm1a = Speed
 
Loop
 
Loop
 
</source>
 
</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