BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Я конечно не спец по БАСКОМу, но FUSES устанавливают в программаторе, а сторожевой таймер включают командой в программе http://www.decada.org.ru/project/lessons/bascom_avr/17/ .
- Реклама
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
При программировании этого контроллера эти биты не доступны.
Так или иначе, фуз сторожевого таймера надо включить, а в программе сконфигурировать и сбрасывать.
Так или иначе, фуз сторожевого таймера надо включить, а в программе сконфигурировать и сбрасывать.
Re: BASCOM AVR в вопросах и ответах
Не подскажите, как прочитать 4 бита порта, желательно не побитно.
Re: BASCOM AVR в вопросах и ответах
Проблема с наводкой решилась, читал весь порт, на 5в были подключены только 4 разряда, а к этому порту был подцеплен программатор. Включил все резисторы и наводка ушла
, коды кнопок пришлось поменять. Всем спасибо.
- Реклама
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Мне почему то никак не выходит задействовать дисплей 4004. Дисплей имеет два контроллера и соответственно две линии "E".
При поочередном переключении проводов и обычной инициализации дисплей работает, то верх, то низ.
Но как только раскоментирую строку $lib "lcd4e2.lib", дисплей наотрез отказывается работать.
Код самый примитивный с интернетов.
$crystal = 16000000
'$baud = 9600 'put terminal on 19200 baud
$hwstack = 100
$swstack = 100
$framesize = 100
$lib "lcd4e2.lib"
'Led Alias Portb.7
'Config Led = Output
Config Lcd = 40 * 4
Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.2 , Rs = Portb.0 , E2 = Portb.3
Config Lcdmode = Port
Initlcd
Cls
' Systemvariable der LCD-Bibliothek (wichtig, blo? nicht a"ndern)
Dim ___lcdno As Byte 'ohne LIB
Dim ___lcde As Byte 'Mit LIB
' wa"hlt die beiden oberen Zeilen aus
___lcde = 0
' lo"scht die beiden oberen Zeilen
Cls
' wa"hlt die obere Zeile aus
Upperline
' schreibt in die erste Zeile an Position 3
Locate 1 , 2
' den Text in Anfu"hrungszeichen
Lcd "Zeile 1"
' wa"hlt die zweite Zeile aus
Lowerline
' schreibt in die zweite Zeile an Position 2
Locate 2 , 2
' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
Lcd "Zeile 2"
' unterdru"ckt den Cursor
Cursor Off
' wa"hlt die beiden unteren Zeilen aus
___lcde = 1
Waitms 100
Cls
Thirdline
Locate 3 , 1
Lcd "Zeile 3"
Fourthline
Locate 4 , 1
Lcd "Zeile 4"
Cursor Off
И как в библиотеке указать другой порт для дисплея -
Что следует записать для порта "A"
При поочередном переключении проводов и обычной инициализации дисплей работает, то верх, то низ.
Но как только раскоментирую строку $lib "lcd4e2.lib", дисплей наотрез отказывается работать.
Код самый примитивный с интернетов.
Спойлер
$regfile = "m2560def.dat"$crystal = 16000000
'$baud = 9600 'put terminal on 19200 baud
$hwstack = 100
$swstack = 100
$framesize = 100
$lib "lcd4e2.lib"
'Led Alias Portb.7
'Config Led = Output
Config Lcd = 40 * 4
Config Lcdpin = Pin , Db7 = Portb.7 , Db6 = Portb.6 , Db5 = Portb.5 , Db4 = Portb.4 , E = Portb.2 , Rs = Portb.0 , E2 = Portb.3
Config Lcdmode = Port
Initlcd
Cls
' Systemvariable der LCD-Bibliothek (wichtig, blo? nicht a"ndern)
Dim ___lcdno As Byte 'ohne LIB
Dim ___lcde As Byte 'Mit LIB
' wa"hlt die beiden oberen Zeilen aus
___lcde = 0
' lo"scht die beiden oberen Zeilen
Cls
' wa"hlt die obere Zeile aus
Upperline
' schreibt in die erste Zeile an Position 3
Locate 1 , 2
' den Text in Anfu"hrungszeichen
Lcd "Zeile 1"
' wa"hlt die zweite Zeile aus
Lowerline
' schreibt in die zweite Zeile an Position 2
Locate 2 , 2
' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
Lcd "Zeile 2"
' unterdru"ckt den Cursor
Cursor Off
' wa"hlt die beiden unteren Zeilen aus
___lcde = 1
Waitms 100
Cls
Thirdline
Locate 3 , 1
Lcd "Zeile 3"
Fourthline
Locate 4 , 1
Lcd "Zeile 4"
Cursor Off
Код: Выделить всё
.EQU LCDDDR=$17 ; change to another address for DDRD ($11)
.EQU LCDPORT=$18 ; change to another address for PORTD ($12)- Balzercvua
- Потрогал лапой паяльник
- Сообщения: 311
- Зарегистрирован: Вт дек 31, 2013 17:36:43
Re: BASCOM AVR в вопросах и ответах
$1B PORTA PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0
$1A DDRA DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0
$19 PINA PINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0
пробуй так это с книги хош скину почитать
$1A DDRA DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0
$19 PINA PINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0
пробуй так это с книги хош скину почитать
-
vanyap1
- Электрический кот
- Сообщения: 1048
- Зарегистрирован: Пт июл 30, 2010 11:49:03
- Откуда: Украина
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Спасибо. Оказывается все банально просто. Заработало так вот:
Все равно спасибо что откликнулись. А что там за книга?
Код: Выделить всё
.EQU LCDDDR=DDRA
.EQU LCDPORT=PORTA-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
и мне можно почитать? 
- Balzercvua
- Потрогал лапой паяльник
- Сообщения: 311
- Зарегистрирован: Вт дек 31, 2013 17:36:43
Re: BASCOM AVR в вопросах и ответах
Прошу только на английском примитивный хелп кстати очень полезный
и еще вот следущая бадяга регистров есть в каждом даташите просто его надо иногда читать практически в его конце
и еще вот следущая бадяга регистров есть в каждом даташите просто его надо иногда читать практически в его конце
- Вложения
-
- swswcwd.jpg
- (213.43 КБ) 353 скачивания
-
- uk_BASCAVR.PDF
- (827.51 КБ) 283 скачивания
Последний раз редактировалось Balzercvua Пн янв 12, 2015 21:45:02, всего редактировалось 2 раза.
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
Balzercvua спасибо!
-
pavel1979
- Мучитель микросхем
- Сообщения: 494
- Зарегистрирован: Пн авг 12, 2013 19:07:47
- Откуда: башкирия мелеуз
Re: BASCOM AVR в вопросах и ответах
решил сам
Re: BASCOM AVR в вопросах и ответах
Подскажите, может есть у кого пример , нужна регулировка частоты и скважности, например на дискретном выходе, не на ШИМ канале. За ранее благодарен.
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Включаешь таймер в режиме таймера, активизируешь прерывание по переполнению, и по совпадению. По совпадению включаешь порт, по переполнению выключаешь. - так регулируешь скважность. поищи примеры регулировки яркости LED индикаторов, в сети часто попадалось
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Re: BASCOM AVR в вопросах и ответах
Я активировал прерывание и в прерывании переменная, которая прибавляется до совпадения с заданным значением и обнуляется. В этом же прерывании я управляю каналом ШИМ для реализации пульсируещего режима, и регулировка частоты и скважности получилась, но нелинейная. Мне нужно 20-200гц а при задании 20- 19гц 200-190гц а середина диапазона 110-45гц. Я взял за единицу, единицу времени одного прерывания.
- Вложения
-
- INT 1.zip
- (774 байт) 174 скачивания
-
rojnov
- Встал на лапы
- Сообщения: 127
- Зарегистрирован: Вс мар 27, 2011 07:48:48
- Откуда: г. Екатеринбург
Re: BASCOM AVR в вопросах и ответах
Приветствую всех уважаемых котов!
Хочу поделиться своей проблемой, от которой уже начинаю впадать в уныние. Проблеме этой уже более полгода, но к прошлой зиме так и не сделал аппарат, теперь вот вспомнил и решил доделать. Делал я термостат в садовый домик, а пока своя схема не готова, работает китайский аналог. Работает нормально, кстати, претензий нет, но хочется и свой доделать, хотя бы из-за того, что в железе все готово, дело за программой. Понимаю, что тема термостата давно изучена вдоль и поперек, что только ленивый не делал свой термостат, но мне это надо хотя бы в плане обучения этому делу. Да и жалко бросать начатое дело.
В общем так. В режиме термометра работает правильно, не работает именно режим термостата - т.е. вход в режим настроек для изменения температуры, которую надо поддерживать. Сделал вход в режим настроек по INT0 (6 нога ATtiny 2313), почему-то при нажатии на эту кнопку вообще нет никакой реакции. Такое ощущение, что делаю что-то не то. Не могу понять, что я делаю не так.
Буду очень рад услышать дельный совет.
Хочу поделиться своей проблемой, от которой уже начинаю впадать в уныние. Проблеме этой уже более полгода, но к прошлой зиме так и не сделал аппарат, теперь вот вспомнил и решил доделать. Делал я термостат в садовый домик, а пока своя схема не готова, работает китайский аналог. Работает нормально, кстати, претензий нет, но хочется и свой доделать, хотя бы из-за того, что в железе все готово, дело за программой. Понимаю, что тема термостата давно изучена вдоль и поперек, что только ленивый не делал свой термостат, но мне это надо хотя бы в плане обучения этому делу. Да и жалко бросать начатое дело.
В общем так. В режиме термометра работает правильно, не работает именно режим термостата - т.е. вход в режим настроек для изменения температуры, которую надо поддерживать. Сделал вход в режим настроек по INT0 (6 нога ATtiny 2313), почему-то при нажатии на эту кнопку вообще нет никакой реакции. Такое ощущение, что делаю что-то не то. Не могу понять, что я делаю не так.
Буду очень рад услышать дельный совет.
- Вложения
-
- Термостат.rar
- (76.52 КБ) 215 скачиваний
Re: BASCOM AVR в вопросах и ответах
Осталось назначить порт D.2 входом.
Config Pind.2 = Input
Config Pind.2 = Input
-
rojnov
- Встал на лапы
- Сообщения: 127
- Зарегистрирован: Вс мар 27, 2011 07:48:48
- Откуда: г. Екатеринбург
Re: BASCOM AVR в вопросах и ответах
И всего-то? А я подумал, что раз я разрешил Int0 и все остальные прерывания, то этого будет достаточно. Спасибо, вечером проверю, сейчас пока нет возможности.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Насколько я помню - это делать не обязательно если вы установили сопротивление от pind.2 на плюс.vem566 писал(а):Осталось назначить порт D.2 входом.
Config Pind.2 = Input
Я никогда не прописывал порт прерывания на вход.
rojnov, я не вижу у вас никаких задержек в подпрограмме обработки прерывания. Добавьте в начале подпрограммы
Код: Выделить всё
waitms 300Код: Выделить всё
gifr=64Я при отлаживании программ если что-то неполучается - вставляю миг светодиодом. Добавьте временно в начале подпрограммы прерывания int0:
Код: Выделить всё
set [порт светодиода]
waitms 500
reset [порт светодиода]С уважением,
Алексей.
Алексей.
Re: BASCOM AVR в вопросах и ответах
Сделав не один круг по этим граблям, проблема была решена принудительным назначением входа прерывания на вход. С тех пор косяков в программах нет.Gordon Shumway писал(а):Я никогда не прописывал порт прерывания на вход.
Самое интересное, что в даташите я не нашел упоминания об этом.


