Вопросы по программированию в Bascom AVR
|
|
Space | Дата: Суббота, 03.07.2010, 10:35 | Сообщение # 61 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Ну этож легко: If B=1 Then : B=1+S : else : B=3 : End If If B=1 or B=2 Then : B=1+S : else : B=3 : End If Так записывать в BascomAvr.
|
|
| |
Dimsan | Дата: Суббота, 03.07.2010, 11:09 | Сообщение # 62 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Нет. Space, посмотри мой последний пост. Ему нужно несколько условий и как их объединить.
|
|
| |
Space | Дата: Воскресенье, 04.07.2010, 14:38 | Сообщение # 63 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| А ну если объединить тогда так: If B=1 Then : B=1+S Elseif B=2 Then : B=1+P Elseif B=3 Then : B=1+Q : else : B=3 : End If
|
|
| |
Skyline | Дата: Вторник, 06.07.2010, 12:20 | Сообщение # 64 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| А можно пояснить, что означает +S, +P, +Q?
|
|
| |
Space | Дата: Вторник, 06.07.2010, 21:57 | Сообщение # 65 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Хорошо тогда так напишу чтоб понятней было: Code If условие Then : действие Elseif условие Then : действие Elseif условие Then : действие : else : действие : End If Здесь есть описание этих команд http://robotsspace.ucoz.ru/publ/8-1-0-46 Скачай книги по баскому http://robotsspace.ucoz.ru/forum/17-263-1
|
|
| |
Skyline | Дата: Пятница, 09.07.2010, 11:11 | Сообщение # 66 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| Здравствуйте! Помогите если сможете еще с одной прогой на этот раз протокол RC-5. Проблема в том что срабатывает только первая команда, т.е. скажешь ехать "Вперёд" поедет вперед и все, на все последующие команды не реагирует. Бывает через какое-то время работает все нормально, принимаются все команды в любой последовательности. Думаю что проблема кроется в программе. Code $regfile = "m16def.dat" $crystal = 16000000 $lib "mcsbyte.lbx" Config Rc5 = Pind.2 Enable Timer0
Config Pina.0 = Output : Fr Alias Porta.0 Config Pina.1 = Output : Br Alias Porta.1 Config Pina.2 = Output : Bl Alias Porta.2 Config Pina.3 = Output : Fl Alias Porta.3 Config Pinb.0 = Output : Led1 Alias Portb.0 Config Pinb.1 = Output : Led2 Alias Portb.1 Config Pinb.2 = Output : Led3 Alias Portb.2
Dim Address As Byte , Command As Byte
Enable Interrupts
Do
Getrc5(address , Command) If Address <> 255 And Command <> 255 Then Command = Command And &B01111111 End If If Command = 32 Then : Set Led1 Gosub Вперёд Waitms 100 Elseif Command = 17 Then : Set Led2 Gosub Влево Waitms 100 Elseif Command = 16 Then : Set Led3 Gosub Вправо Waitms 100 Elseif Command = 33 Then : Reset Led1 Gosub Назад Waitms 100 Elseif Command = 1 Then : Reset Led2 Gosub Стоп Waitms 100 End If
Loop
|
|
| |
Space | Дата: Пятница, 09.07.2010, 11:20 | Сообщение # 67 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| вообще рц5 я толком не смог запустить на меге16. не знаю в чём там причина была, но точно не впроге. пробовал на тиньке2313 туже прогу что на меге работало всё отлично. Но были подозрения, что фьюзы не те прошиты для меги
|
|
| |
Skyline | Дата: Пятница, 09.07.2010, 11:28 | Сообщение # 68 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| В том то и проблема, что бывает толком работает даже отлично, а бывает в отказ, только первую команду!
|
|
| |
Space | Дата: Суббота, 10.07.2010, 01:04 | Сообщение # 69 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| я знаю, таже фигня была. попробуй на тиньке
|
|
| |
Skyline | Дата: Четверг, 15.07.2010, 13:04 | Сообщение # 70 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| Всем здравствуйте! Разобрался с RC-5, походу все проблемы были от помех создаваемые двигателями в нагруженном состоянии, поставил на движки кондеры и все пучком! Теперь вопросы по поводу ШИМ, использую вот этот ДД http://robotsspace.ucoz.ru/publ/7-1-0-50. 1)На всех платах ДД, котрые я видел было по 4 вывода, здесь 6, вопрос зачем? 2)Касаемо подключения, просто вешать все 6 выводов на порты МК? 3)Подключение программно; как правильно обозначить порты ШИМ в проге?
Сообщение отредактировал Skyline - Четверг, 15.07.2010, 13:06 |
|
| |
Dimsan | Дата: Четверг, 15.07.2010, 13:19 | Сообщение # 71 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Что-то не могу пройти по ссылке. Если этот ДД расчитан на 2 двигателя, то на каждый по 3 ноги: 2 определяют направление вращения, а 3-я -ШИМ Если так, то вешаешь всё на МК. Обозначить в каком смысле? Можешь вешать на любые порты или на те, где есть аппаратный ШИМ.
|
|
| |
Skyline | Дата: Четверг, 15.07.2010, 13:39 | Сообщение # 72 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| ДД с L293D, который лежит на этом сайте в разделе "Статьи" http://robotsspace.ucoz.ru/publ/7-1-0-50 На меге 16 аппаратный ШИМ на каких ногах есть?
|
|
| |
Space | Дата: Четверг, 15.07.2010, 14:18 | Сообщение # 73 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (Dimsan) Если этот ДД расчитан на 2 двигателя, то на каждый по 3 ноги: 2 определяют направление вращения, а 3-я -ШИМ Если так, то вешаешь всё на МК. всё верно сказанно. Quote (Skyline) На меге 16 аппаратный ШИМ на каких ногах есть? PD4 и PD5
|
|
| |
Skyline | Дата: Суббота, 24.07.2010, 14:10 | Сообщение # 74 |
Зарегистрирован 20.02.2010
Группа: Новички
Сообщений: 50
Город: Уральск
Статус: Offline
| Спасибо! Будем разбираться! Добавлено (24.07.2010, 14:10) --------------------------------------------- Блин еще одна проблема! В окне программирования( где фьюзы и прочее..) нажал Clear buffer, очистка буффера насколько я понял, и теперь значек программирования стал красным. Шить то вроде шьет, только после прошивки вылазит окошко с Difference at 00000. Мало того что некоторые фьюзы слетели так и проги не работают! Кто знает как назад вернуть?
Сообщение отредактировал Skyline - Суббота, 24.07.2010, 14:11 |
|
| |
Qwerty | Дата: Среда, 28.07.2010, 23:28 | Сообщение # 75 |
Зарегистрирован 27.07.2010
Группа: Новички
Сообщений: 2
Город: 123
Статус: Offline
| Уважаемый Spase! Не могли бы вы помочь разобраться с подключением ЖК 16х2 к любым пинам. Нашел ваше сообщение с прикрепленными примерами, но к сожалению архив пуст. Вот мой код, ткните носом, где ошибка: Code $regfile = "m8def.dat" $crystal = 8000000 $lib "LUC_lcd4busy.lib" ' use the alternative library
' These are the 22 constants for the above connections:
Const _lcddb4_portx = Portb 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcddb4_ddrx = Ddrb 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcddb4_pinnumber = 0 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcddb5_portx = Portd 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcddb5_ddrx = Ddrd 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcddb5_pinnumber = 7 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcddb6_portx = Portd 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcddb6_ddrx = Ddrd 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcddb6_pinnumber = 6 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcddb7_portx = Portd 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcddb7_ddrx = Ddrd 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcddb7_pinx = Pind 'Valid values: PINA, PINB, PINC, PIND, PINE. Const _lcddb7_pinnumber = 5 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcde_portx = Portb 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcde_ddrx = Ddrb 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcde_pinnumber = 1 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcdrw_portx = Portb 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcdrw_ddrx = Ddrb 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcdrw_pinnumber = 3 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Const _lcdrs_portx = Portb 'Valid values: PORTA, PORTB, PORTC, PORTD, PORTE. Const _lcdrs_ddrx = Ddrb 'Valid values: DDRA, DDRB, DDRC, DDRD, DDRE. Const _lcdrs_pinnumber = 2 'Valid values: 0, 1, 2, 3, 4, 5, 6, 7.
Config Lcd = 16 * 2
Cursor Off Noblink Cls
Waitms 1000
LCD "Hello!" Waitms 1000 Cls waitms 100
Lcd "1234567890"
Do !nop Loop
End 'end program
Добавлено (28.07.2010, 23:28) --------------------------------------------- Еще вопрос: Можно ли таймером делить частоту кварца на число не кратное 8? Например не на 128 а на 129 или 130 ?
Сообщение отредактировал Qwerty - Среда, 28.07.2010, 21:30 |
|
| |
|