Задание№1-1 — различия между версиями
Мур (обсуждение | вклад) м |
SkyStorm (обсуждение | вклад) |
||
| (не показано 12 промежуточных версий 4 участников) | |||
| Строка 1: | Строка 1: | ||
[[Категория:МиниБот]] | [[Категория:МиниБот]] | ||
| − | + | ||
| + | == Учим МиниБот ехать прямо на заданной скорости == | ||
Указываем васику с каким крутым камнем ему прийдется иметь дело | Указываем васику с каким крутым камнем ему прийдется иметь дело | ||
| − | < | + | <source lang="vb"> |
| − | $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить | + | |
| − | $regfile = "m32def.dat" ' файл спецификации Меги32 | + | $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить |
| − | $crystal = 8000000 ' указываем на какой частоте будем работать | + | $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 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.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl |
| − | Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr | + | Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr |
| − | Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход | + | Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход |
| − | Config Pind.5 = Output 'ногу ШИМа правого движка | + | Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход |
| − | + | </source> | |
| + | |||
Объявляем переменную в которой будем держать текущую скорость | Объявляем переменную в которой будем держать текущую скорость | ||
| − | < | + | <source lang="vb"> |
| − | Dim Speed As Byte | + | Dim Speed As Byte |
| − | Speed = 70< | + | Speed = 70 |
| − | + | </source> | |
| + | |||
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.<br /> | Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.<br /> | ||
| − | 0% это | + | 0% это соответственно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.<br /> |
Теперь собственно основной код программы | Теперь собственно основной код программы | ||
| − | < | + | <source lang="vb"> |
| − | Do | + | Do |
| − | Drl = 0 'направление движения левого движка, в нашем | + | Drl = 0 'направление движения левого движка, в нашем случае это прямо |
| − | Drr = 0 'направление движения правого движка, в нашем случае это прямо | + | Drr = 0 'направление движения правого движка, в нашем случае это прямо |
| − | Pwm1b = Speed : Pwm1a = Speed | + | Pwm1b = Speed : Pwm1a = Speed |
| − | Loop | + | 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> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | Do | ||
| − | Drl = 0 'направление движения левого движка, в нашем случае это прямо | ||
| − | Drr = 0 'направление движения правого движка, в нашем случае это прямо | ||
| − | Pwm1b = Speed : Pwm1a = Speed | ||
| − | Loop | ||
| − | </ | ||
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.<br /> | Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.<br /> | ||
| − | + | {{МиниБот Уроки и Задания}} | |
| + | [[Категория:Basic]] | ||
Текущая версия на 13:16, 11 июля 2008
Учим МиниБот ехать прямо на заданной скорости
Указываем васику с каким крутым камнем ему прийдется иметь дело <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, Урок №2 |
|---|---|
| Задания: | Задание№1, Задание№2, Задание№2-1, Задание№2-2, Задание№3, Задание№4 |