Вопросы по программированию в Bascom AVR
|
|
Doniak | Дата: Суббота, 07.11.2009, 20:07 | Сообщение # 16 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote (Yura202) А с чего лутше начинать учитса програмировать??? Ато вижу мне програмирование понадобитса. Я про програмирования ничего не знаю так што любой совет сылка все покажыте ПОЖАЛУСТА! help help Смотря для каких целей. Я например начинал с Визюал бейсика, очень простая среда разработки. Ну мне очень повезло отличная книга попалась изучение шло на ура. А бывают такие книги попадаются что напрочь желания отбивают. под AVR бейскик очень простой, Си практичный, Ассемблер сложный но производительный
|
|
| |
Yura202 | Дата: Воскресенье, 08.11.2009, 14:48 | Сообщение # 17 |
Язык программированя: а что ето такое?
Зарегистрирован 06.11.2009
Группа: Новички
Сообщений: 25
Город: Тернополь
Статус: Offline
| Doniak, у вас есть сылка на ту книгу?
|
|
| |
pashteet | Дата: Суббота, 14.11.2009, 20:19 | Сообщение # 18 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Есть вопрос! Можно ли сделать мигалку, чтобы при этом мк не простаивал в ожидании (паузы), а занимался своими делами? Чет никак сообразить немогу Можт для этого можно как-нибудь использовать таймер? Если важно, то мк - мега8, таймер1 занят под ШИМ
|
|
| |
Dimsan | Дата: Суббота, 14.11.2009, 20:21 | Сообщение # 19 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| В меге8 есть ещё 2 таймера. Их можно использовать.
|
|
| |
pashteet | Дата: Суббота, 14.11.2009, 20:47 | Сообщение # 20 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| А как правильно таймер запустить? Можно ли изменять период мигания? Я так понял что таймер будет прерываться по переполнению, т.е. через равные промежутки времени Добавлено (14.11.2009, 20:47) --------------------------------------------- Нашел как генерировать меандр спомощью таймер, осталась задача - как изменять частоту меандра?
|
|
| |
Dimsan | Дата: Воскресенье, 15.11.2009, 20:02 | Сообщение # 21 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| Недавно сам занимался таймерами в меге8. Если хочешь, пиши в ЛС, ICQ, Skype или на мыло.
|
|
| |
pashteet | Дата: Понедельник, 23.11.2009, 22:25 | Сообщение # 22 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Хорошо! Чуть по позже спишемся Добавлено (23.11.2009, 22:25) --------------------------------------------- Есть вопрос! Можно ли делать так: Описываем переменную P как Bit Присваиваем P=0 И в прерывании меняем ее с 0 на 1 и обратно, с помощью команды Toggle P или это неправильно?
|
|
| |
Dimsan | Дата: Понедельник, 23.11.2009, 23:52 | Сообщение # 23 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| На счёт команды не знаю... Можно простым присваиванием. А в чём смысл?
|
|
| |
pashteet | Дата: Вторник, 24.11.2009, 00:18 | Сообщение # 24 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Сейчас попробую объяснить суть, в двух словах: В обработчике прерывания UART'a нужно, что бы каждый раз когда приходит символ P, значение переменной менялось с 0 на 1 и обратно Пробывал вот так делать: Code Прием:
Command = Inkey() Select Case Command
Case "p" : if P=0 then : P=1 : Else : P=0 : End If
End Select
Return компилятор ругается, непойму на что
|
|
| |
Dimsan | Дата: Вторник, 24.11.2009, 00:51 | Сообщение # 25 |
Язык программированя: Си, Делфи
Зарегистрирован 18.06.2009
Группа: Опытные
Сообщений: 252
Город: Херсон
Статус: Offline
| В Бейсике не шарю...
|
|
| |
pashteet | Дата: Вторник, 24.11.2009, 13:05 | Сообщение # 26 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Попробывал так, как описывал выше (с помощью Toggle P) все работает как надо
|
|
| |
sasha | Дата: Понедельник, 07.12.2009, 15:13 | Сообщение # 27 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| вот робот оснащен 3мя датчикаvи препятствия. и датчиком который находит темный цвет... ну корочь с фоторанзистором...мне над так... када нажимаю кнопку старт робот искал темный цвет... в смысле реагируя на препятствие... и када найдет ту темную краску должен остановится и загорется светодиод и дальше искать! вот я не могу написаит программу... покажите плз... вот написал как датчики по отдельности реагирует.. а вот после нажатия кнопки не могу разобратся.... Do If Pind.0 = 0 Then Portb.0 = 0 'назад Portb.3 = 1 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Portb.0 = 1 'в лево Portb.3 = 0 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Else Portb.0 = 0 'стоп Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If If Pind.1 = 0 Then Portb.0 = 0 'c права Portb.3 = 1 Portb.4 = 1 Portb.5 = 0 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If 'с лева If Pind.2 = 0 Then Portb.0 = 1 Portb.3 = 0 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
Сообщение отредактировал sasha - Понедельник, 07.12.2009, 15:15 |
|
| |
pashteet | Дата: Понедельник, 07.12.2009, 19:43 | Сообщение # 28 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| брр, чет немогу понять, какие датчики? Куда подключены? Для начала попробуй написать прогу, которая будет объезжать препядствия, это не такая простая задача как кажется Потом напиши прогу, реагирующую на цвет, ну и после удачных запусков пробуй соединять Добавлено (07.12.2009, 19:43) --------------------------------------------- Ребят, у меня в свою очередь вопрос,как можно сделать запись нескольких значений ADC? Например, на входе аналоговый сигнал (например звук), нужно его записать
|
|
| |
sasha | Дата: Понедельник, 07.12.2009, 22:33 | Сообщение # 29 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| вот и прога... ток написал как реагирует на препятствие и как от радиориемника принимает... а дальше как сам работает не могу... помогите... када включаю по сигналу пульта управлятся дожен... а када нажимаю кнопу зпуск поиск о должен искать темный цвет... Code regfile = "m8def.dat" ' используемый микроконтроллер ATmega8 $crystal = 16000000 ' частота установленного кварца 16 mHz
'Генерация частоты для управления скоростью моторами 36кГц 'Настраиваем Timer1
Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare A = Toggle
' Расчитываем Compare1a
Compare1a = 222
'Генерация частоты для управления скоростью моторами 18кГц 'Настраиваем Timer2
Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare B = Toggle
' Расчитываем Compare1b ' тактовая частота (kHz) / частота TSOPa (kHz) / 2 = Compare
Compare1b = 444
Config Portb.0 = Output '1-мотор вперед Config Portb.1 = Output 'сигналы для управления скоростью двигателями Config Portb.2 = Output 'сигналы для управления скоростью двигаиелями Config Portb.3 = Output '1-мотор еазад Config Portb.4 = Output '2-мотор вперед Config Portb.5 = Output '2-мотор назад Config Portc.0 = Output 'вход датчика линий на основе компоратора LM311 Config Portc.1 = Output 'выход датчика линий на основе компоратора LM311 Config Pinc.2 = Input 'старт работа (запустить поиск) Config Portc.3 = Output Config Portc.4 = Output Config Portc.5 = Output Config Portc.6 = Output Config Portc.7 = Output Config Pind.0 = Input 'даткик препятствие с переди тсоп1736 c robozone.su Config Pind.1 = Input 'датчик препятствие с права Config Pind.2 = Input 'датчик препятствие с лева Config Pind.3 = Input 'датчик линий на основе компоратоа LM311 с robozone.su Config Pind.4 = Input 'приемник от радиоуправлений вперед Config Pind.5 = Input 'приемник от радиоуправлений назад Config Pind.6 = Input 'приемник от радиоуправлений в право Config Pind.7 = Input 'приемник от радиоуправлений в лево
'************************* 'драйвер двигателей L293D '************************* Start Timer1 Do '*************************************************************************** 'датчики препятствие (скорость над понизить, в смысле над открыть portb.2) '*************************************************************************** If Pind.0 = 0 Then ' Portb.0 = 0 'назад Portb.3 = 1 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Portb.0 = 1 'в лево Portb.3 = 0 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Else Portb.0 = 0 'стоп Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
If Pind.1 = 0 Then ' Portb.0 = 0 'c права Portb.3 = 1 Portb.4 = 1 Portb.5 = 0 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If 'с лева If Pind.2 = 0 Then ' Portb.0 = 1 Portb.3 = 0 Portb.4 = 0 Portb.5 = 1 Waitms 1000 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
'*********************************************************************************************************************** 'примник от радиоуправления (скорость надо еще повысить, в смысле надо открыть portb.1(не писал, не знаю как,куда=((()) '*********************************************************************************************************************** If Pind.4 = 0 Then ' Portb.0 = 1 'вперед Portb.3 = 0 Portb.4 = 1 Portb.5 = 0 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
If Pind.5 = 0 Then Portb.0 = 0 'назад Portb.3 = 1 Portb.4 = 0 Portb.5 = 1 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
If Pind.6 = 0 Then Portb.0 = 1 'в лево Portb.3 = 0 Portb.4 = 0 Portb.5 = 1 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
If Pind.7 = 0 Then Portb.0 = 0 'в право Portb.3 = 1 Portb.4 = 1 Portb.5 = 0 Else Portb.0 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 End If
'************************************************************************************************************************************* ******************************************************************************************************************************************** 'вот и начинается проблема, после нажатия кнопки запуск поиска(pinc.2) надо скорость понизить, еще надо датчик выйти из гнезда,а када найдет темный цвет должен датчик зайти внутрь(ну сам смастерил как выходит, как заходит(portc.0, portc.1 портами управлять над) '************************************************************************************************************************************* ********************************************************************************************************************************************
If Pinc.2 = 0 Then не знаю...
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
|
|
| |
pashteet | Дата: Понедельник, 07.12.2009, 23:22 | Сообщение # 30 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Я так понимаю ты из казахстана? Извини, но я половины непонял о чем ты написал
|
|
| |