BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

Здравствуйте!
Известно что а атмега64 есть два порта рс232.
Так собственно вопрос - как отправить во второй информацию, если <print var> запишет в первый порт.
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Re: BASCOM AVR в вопросах и ответах

Сообщение Moto_v3x »

PRINT [#channel , ] var ; " constant"
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

Понял, спасибо.
verzg
Родился
Сообщения: 2
Зарегистрирован: Сб янв 19, 2013 23:04:38

Re: BASCOM AVR в вопросах и ответах

Сообщение verzg »

Здравствуйте.
Подскажите, как в BASCOM сделать прерывание по совпадению от таймера 0 для ATMega8535.
http://www.edm2007.narod.ru/startavr7.html Приведенный здесь пример у меня не работает.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Здравствуйте.

Да все прекрасно работает. Просто нужно хоть немного заглядывать в даташит, дабы посмотреть какие регистры имеются именно у этого МК, и как они называются.

Код: Выделить всё

$regfile = "m8535.dat"                                                     ' тип МК
$crystal = 4000000                                                          ' тактовая частота

Config Portb.1 = Output                                                    ' конфигурация пина порта
Config Timer0 = Timer , Prescale = 64 , Clear Timer = 0     ' и таймера

On Oc0 Tim0compare                ' метки на обработчики
On Ovf0 Tim0overflow

Enable Interrupts                       ' разрешаем работу прерываний
Enable Oc0
Enable Ovf0

Ocr0 = 70                                 ' запись в регистр сравнения

'----------

Do                                            ' пустой цикл

Loop

'----------

Tim0compare:                          ' обработка прерывания по совпадению

Set Portb.1

Return

'----------

Tim0overflow:                          ' обработка прерывания по переполнению

Reset Portb.1

Return


----------

Ocr0 = 10:

Изображение

Ocr0 = 70:

Изображение

Ocr0 = 220:

Изображение
Вложения
Timer8535_verzg220.gif
(40.41 КБ) 1446 скачиваний
Timer8535_verzg70.gif
(39.74 КБ) 1470 скачиваний
Timer8535_verzg10.gif
(39.6 КБ) 1546 скачиваний
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
verzg
Родился
Сообщения: 2
Зарегистрирован: Сб янв 19, 2013 23:04:38

Re: BASCOM AVR в вопросах и ответах

Сообщение verzg »

edm2007 Благодарю.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

Re: BASCOM AVR в вопросах и ответах

Сообщение осторожно! леоныч!!! »

Снова всем привет) Хочу вновь задать глупый вопрос :)))

Мне нужно наладить связь между двумя разными МК. Attiny2313 и atmega16.
Оба контроллера работают с тактовой частотой 8мгц от встроенного генератора без делителя...

Нужно чтоб оба контроллера по одному порту "слушали" друг друга и передавали команды когда это необходимо друг другу. Посоветуйте что лучше передавать и как.
Я вот думал байт передавать,только надо скорость пониже чтоб ошибок не было. 800 герц хотя бы думаю скорость будет норм. Можно для приема и передачи наверное применять разные порты и "слить" их в одну линию при помощи транзисторов.

Что посоветуете друзья??? :dont_know: :idea:
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

А rs232 чем неугодил?
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

Re: BASCOM AVR в вопросах и ответах

Сообщение осторожно! леоныч!!! »

Можно конечно и его. Но как наладить связь между контроллерами? Надо в обе стороны данные передавать и принимать. В одну линию (провод) этот интерфейс не впилишь по моему. Надо организовать реакцию контроллера на приходящие команды, я понятия не имею какие команды имеет этот протокол связи и будет ли он у меня работать на длинной линии...
maloicds
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вт янв 24, 2012 16:43:03
Откуда: Москва

Re: BASCOM AVR в вопросах и ответах

Сообщение maloicds »

Всем привет. Помогите с простым кодом.

Код: Выделить всё

$regfile = "attiny13.dat"
$crystal = 8000000
Led Alias Pinb.0
But Alias Pinb.1
Config Led = Output
Config But = Input
Do
If But = 0 Then
   Led = 1
   Waitms 1000
   Led = 0
   Waitms 1000
   End If
Loop
End

Смысл простой: при нажатии кнопки светодиод мигает раз в секунду. Проблема в том, что при отпускании кнопки в момент свечения светодиода, светодиод продолжает гореть. Пробовал вынести мигание светодиода в процедуру - тоже самое. В Proteus'е тоже самое.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

А если еще Led = 0 после If вставить:

Код: Выделить всё

$regfile = "attiny13.dat"
$crystal = 8000000
Led Alias Pinb.0
But Alias Pinb.1
Config Led = Output
Config But = Input
Do
If But = 0 Then
   Led = 1
   Waitms 1000
   Led = 0
   Waitms 1000
   End If
Led = 0
Loop
End
maloicds
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вт янв 24, 2012 16:43:03
Откуда: Москва

Re: BASCOM AVR в вопросах и ответах

Сообщение maloicds »

Непомогло :(
По идее код между if..then..end if должен целиком выполняться, а происходит зависание
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

осторожно! леоныч!!! писал(а):будет ли он у меня работать на длинной линии...

Ну это не проблема.
Вложения
Приём-передатчик.PNG
(18.62 КБ) 435 скачиваний
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

Re: BASCOM AVR в вопросах и ответах

Сообщение осторожно! леоныч!!! »

Да. Не плохой вариант. Но я подумал, сделаю как на платах управления лифтом. Два провода - общий и линия. Так платы лифта между собой общаются.Осталось придумать как передавать и принимать. Команды надо поискать.
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

maloicds писал(а):Всем привет. Помогите с простым кодом.

Код: Выделить всё

$regfile = "attiny13.dat"
$crystal = 8000000
Led Alias Pinb.0
But Alias Pinb.1
Config Led = Output
Config But = Input
Do
If But = 0 Then
   Led = 1
   Waitms 1000
   Led = 0
   Waitms 1000
   End If
Loop
End

...Проблема в том, что при отпускании кнопки в момент свечения светодиода, светодиод продолжает гореть. .


Можно сделать так -

Код: Выделить всё

$regfile = "attiny13.dat"
 Input
Do
If But = 0 Then
   Led = 1
   Waitms 1000
   Led = 0
   Waitms 1000
Else
Led = 0   
End If
Loop


осторожно! леоныч!!! писал(а):Да. Не плохой вариант. Но я подумал, сделаю как на платах управления лифтом. Два провода - общий и линия. Так платы лифта между собой общаются.Осталось придумать как передавать и принимать. Команды надо поискать.


Не совсем понятно про какие команды идет речь.
В чем проблема отправить в порт байт, а на втором контроллере проверить этот байт. Если совпало с байтом в памяти, то выполнить действия. Для односторонней связи вполне достаточно двух проводов (минус питания и данные). Прост подключить TX ведущего к RX ведомого. Для длинной линии желательно поставит на оба конца преобразователь на max232.
осторожно! леоныч!!!
Сверлит текстолит когтями
Сообщения: 1156
Зарегистрирован: Вт дек 09, 2008 20:31:56

Re: BASCOM AVR в вопросах и ответах

Сообщение осторожно! леоныч!!! »

Про какие команды речь? Да про любые. Как вы и написали. Принял байт,сравнил,есть? - выполнил действие. Не совпал? - продолжил прием из линии или что нибудь передал в линию.
maloicds
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вт янв 24, 2012 16:43:03
Откуда: Москва

Re: BASCOM AVR в вопросах и ответах

Сообщение maloicds »

Перепробовал все варианты. Держу кнопку - светодиод моргает. Отпускаю в потухшем состоянии - всё ок, светодиод не моргает. Но если отпускаю в зажённом состоянии - продолжает гореть :(
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение vanyap1 »

Вам надо чтобы горел при нажатой кнопке или просто мигал?

Do
If But = 0 Then
Led = 1
Waitms 1000
Led = 0
Waitms 1000
Else
Led = 0
End If
loop
maloicds
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вт янв 24, 2012 16:43:03
Откуда: Москва

Re: BASCOM AVR в вопросах и ответах

Сообщение maloicds »

Мигал при нажатой. Всё заработало. Вопрос снимается.

Код: Выделить всё

Led Alias Portb.0
But Alias Pinb.1
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Re: BASCOM AVR в вопросах и ответах

Сообщение kip96 »

осторожно! леоныч!!! писал(а):Про какие команды речь? Да про любые. Как вы и написали. Принял байт,сравнил,есть? - выполнил действие. Не совпал? - продолжил прием из линии или что нибудь передал в линию.

А Вы на чём пишите? Асм или Баском. Если Баском, то не пойму в чём проблема? Input A? куда ж проще!
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Ответить

Вернуться в «AVR»