Среда, 04.12.2024, 04:18
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Архив - только для чтения
Вопросы по программированию в 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
Есть вопрос! Можно ли сделать мигалку, чтобы при этом мк не простаивал в ожидании (паузы), а занимался своими делами?
Чет никак сообразить немогу scratch_one-s_head Можт для этого можно как-нибудь использовать таймер?
Если важно, то мк - мега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
А как правильно таймер запустить? Можно ли изменять период мигания? Я так понял что таймер будет прерываться по переполнению, т.е. через равные промежутки времени sorry

Добавлено (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
Хорошо! Чуть по позже спишемся drinks

Добавлено (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) все работает как надо dance4
 
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
брр, чет немогу понять, какие датчики? Куда подключены?
Для начала попробуй написать прогу, которая будет объезжать препядствия, это не такая простая задача как кажется wink
Потом напиши прогу, реагирующую на цвет, ну и после удачных запусков пробуй соединять yes3

Добавлено (07.12.2009, 19:43)
---------------------------------------------
Ребят, у меня в свою очередь вопрос,как можно сделать запись нескольких значений ADC?
Например, на входе аналоговый сигнал (например звук), нужно его записать scratch_one-s_head

 
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
Я так понимаю ты из казахстана? Извини, но я половины непонял о чем ты написал sad
 
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: