BASCOM AVR в вопросах и ответах
- pavel123
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Чт май 17, 2007 09:44:13
- Откуда: Украина, г. Кривой Рог
WildCat давал ссылку на свой сайт с обучалками, спасибо ему
http://avr.easycoding.org/bascom_lessons/index.htm
Там в разделе о прерываниях есть о таймерах.
По переполнению таймера считаеш импульсы (60*60*24=86400) и уже далее вычисляеш часы минуты секунды.
http://avr.easycoding.org/bascom_lessons/index.htm
Там в разделе о прерываниях есть о таймерах.
По переполнению таймера считаеш импульсы (60*60*24=86400) и уже далее вычисляеш часы минуты секунды.
- Тихан
- Потрогал лапой паяльник
- Сообщения: 346
- Зарегистрирован: Пн апр 14, 2008 19:57:20
- Контактная информация:
КОгда у меня включена/выключена два разряда на индикаторе все вроде пашет:
Но когда я делаю так индикаторы показывает полную ерунду:
В чем дело?
Код: Выделить всё
Portd.1 = 1
Portb = Lookup(m_des , Martix)
Waitms 1
Portd.1 = 0
Portd.2 = 1
Portb = Lookup(m_ed , Martix)
Waitms 1
Portd.2 = 0Код: Выделить всё
Portd.1 = 1
Portb = Lookup(m_des , Martix)
Waitms 1
Portd.1 = 0
Portd.2 = 1
Portb = Lookup(m_ed , Martix)
Waitms 1
Portd.2 = 0
Portd.3 = 1
Portb = Lookup(h_des , Martix)
Waitms 1
Portd.3 = 0
Portd.4 = 1
Portb = Lookup(h_ed , Martix)
Waitms 1
Portd.4 = 0- Вложения
-
- 2281c35186ac.png
- Ерунда на индиках
- (5.94 КБ) 873 скачивания
Съел сам, помоги соседу. Соседу мясо вредно:)
pavel123 писал(а):На ноге Д.4 у тини висит таймер0, и если ты используеш таймер0 как прерывание, то нога Д.4 не работает как порт.
Что вы человека в заблуждение вводите?. На порту д4 у этого контроллера висит тактовый вход таймера. Использование прерываний от таймера никак не касается этого входа. Только в случае если тактирование таймера настроено от внешнего сигнала (от пина Т0) таймер будет считать переходы сигнала (либо 1-0 либо 0-1 в зависимости от настроек), но даже в этом случае пин Т0 (PORTD4) может быть настроен как выход, просто при манипулировании этим выходом из программы таймер будет считать. Об этом ясно написано в даташите. Так что не вносите сумятицы.
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
А вот кто-нибудь сталкивался с таким интересным глюком. Вводим следующий текст:
И на реальном LCD видим 256
Во встроенном симуляторе вроде всё работает нормально.
Код: Выделить всё
dim a as byte
a=255
a=a+1
lcd aИ на реальном LCD видим 256
-
Radan
- Мучитель микросхем
- Сообщения: 465
- Зарегистрирован: Ср июн 21, 2006 08:24:32
- Откуда: Лисичанск
- Контактная информация:
На http://bascomavr.3bb.ru объявлен конкурс:
В связи с надвигающимися праздниками Новым годом и Рождеством Христовым, а так же с целью популяризации программы BASCOM объявляется второй ежегодный конкурс на лучшую конструкцию с её (программой) использованием. Победителей ждут призы - лицензионное ПО от его создателя Марка Альбертса и другие не менее ценные призы от учредителей конкурса. Более подробно об условиях читайте в соответствующей ветке форума. Пусть победят сильнейшие!
В связи с надвигающимися праздниками Новым годом и Рождеством Христовым, а так же с целью популяризации программы BASCOM объявляется второй ежегодный конкурс на лучшую конструкцию с её (программой) использованием. Победителей ждут призы - лицензионное ПО от его создателя Марка Альбертса и другие не менее ценные призы от учредителей конкурса. Более подробно об условиях читайте в соответствующей ветке форума. Пусть победят сильнейшие!
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Код: Выделить всё
$regfile = "m8def.dat" 'определяем контроллер
$crystal = 1000000 'внутренний генератор
$lib "lcd4.lbx" 'подключаем библиотеку ЖКИ
$lib "mcsbyte.lbx" 'подключаем библиотеку функций
Enable Interrupts 'включаем прерывания
'указываем конфигурацию подключения дисплея к портам МК
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
'используем дисплей на 2 строчки по 16 знакомест в каждой
Config Lcd = 16 * 2
'команда выключения дисплея
Cursor Off
'команда очистки дисплея
Cls
'основной бесконечный цикл
Do
Locate 1 , 1 'выводим надпись
Lcd "0123456789111213"
Locate 2 , 1
Lcd "1415161718192021"
Loop
End- Gryphon
- Нашел транзистор. Понюхал.
- Сообщения: 152
- Зарегистрирован: Пн ноя 03, 2008 12:08:42
- Откуда: Владивосток
- Контактная информация:
Привет всем форумчанам! Решил вот сделать часы на LCD и тиньке 2313
вот что получилось:
$regfile = "2313def.dat"
$crystal = 4000000
Config Pind.1 = Input
Config Pind.2 = Input
Dim Secs As Integer
Dim Mins As Integer
Dim Hours As Integer
Dim A As Integer
Secs = 0
Mins = 0
Hours = 0
Cursor Off
Cls
Do
If Pind.1 = 0 Then Mins = Mins + 1
If Pind.2 = 0 Then Hours = Hours + 1
Secs = Secs + 1
Wait 1
If Secs >= 60 Then Mins = Mins + 1
If Secs >= 60 Then Secs = 0
If Mins >= 60 Then Hours = Hours + 1
If Mins >= 60 Then Mins = 0
If Hours >= 24 Then Hours = 0
If Hours >= 12 Then A = 24
If Hours <= 12 Then A = 12
Cls
Lcd "Clock " ; Hours ; ":" ; Mins ; ":" ; Secs ; " " ; A
Loop
End
Простите за неграмотный код-другого не мог придумать
Часы вот уже тридцать минут работают и все ОК, но проблема-нельзя настроить их. Вопрос-как сделать опрос кнопок так, чтобы индикатор не мерцал и прибавлял столько-сколько было нажатий.
P.S. Может кто-то делал похожее. Если так-выкладывайте.

вот что получилось:
$regfile = "2313def.dat"
$crystal = 4000000
Config Pind.1 = Input
Config Pind.2 = Input
Dim Secs As Integer
Dim Mins As Integer
Dim Hours As Integer
Dim A As Integer
Secs = 0
Mins = 0
Hours = 0
Cursor Off
Cls
Do
If Pind.1 = 0 Then Mins = Mins + 1
If Pind.2 = 0 Then Hours = Hours + 1
Secs = Secs + 1
Wait 1
If Secs >= 60 Then Mins = Mins + 1
If Secs >= 60 Then Secs = 0
If Mins >= 60 Then Hours = Hours + 1
If Mins >= 60 Then Mins = 0
If Hours >= 24 Then Hours = 0
If Hours >= 12 Then A = 24
If Hours <= 12 Then A = 12
Cls
Lcd "Clock " ; Hours ; ":" ; Mins ; ":" ; Secs ; " " ; A
Loop
End
Простите за неграмотный код-другого не мог придумать
Часы вот уже тридцать минут работают и все ОК, но проблема-нельзя настроить их. Вопрос-как сделать опрос кнопок так, чтобы индикатор не мерцал и прибавлял столько-сколько было нажатий.
P.S. Может кто-то делал похожее. Если так-выкладывайте.
Вы получаете от людей больше, если им противоречите
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
По моему проще взать ds1307. В ней есть часы и полный календарь.
Вот рабочая программа часов на mega16. Вывод часов, даты. Установка 4-мя кнопками. Будут вопросы, пиши!
Вот рабочая программа часов на mega16. Вывод часов, даты. Установка 4-мя кнопками. Будут вопросы, пиши!
- Вложения
-
- ds1307 kot.txt
- рабочая программа часов на mega16
- (5.6 КБ) 1124 скачивания
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Странно! Перед тем, как скинуть, проверил. У меня все отлично работало! А код скинь.
Проверил еще раз, все работает!
Попробуй по этой схеме.
Проверил еще раз, все работает!
Попробуй по этой схеме.
- Вложения
-
- P-CAD.GIF
- Схема часов
- (115.58 КБ) 1003 скачивания
max50 а не ошибка ли?
На шине I2C подтяжка 4.7к надо на SCL и SDA, а не только на SDA или я не прав?
А код на работе в понедельник скину!
Схема ниже. делаю это http://diy.elektroda.eu/?p=40
программа что то плохо пашет!
Прошиваешь прошивку на экран 16*2 то работают 2 строки по 8 символов
а когда прошивку для 24*2 то работают 2 строки по 12 символов
На шине I2C подтяжка 4.7к надо на SCL и SDA, а не только на SDA или я не прав?
А код на работе в понедельник скину!
Схема ниже. делаю это http://diy.elektroda.eu/?p=40
программа что то плохо пашет!
Прошиваешь прошивку на экран 16*2 то работают 2 строки по 8 символов
а когда прошивку для 24*2 то работают 2 строки по 12 символов
- Вложения
-
- analizator.png
- (48.57 КБ) 871 скачивание