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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

проверяеш через иф равно ли 10 и если равно - сбрасываеш в 0 (min_ed =0)
Аватара пользователя
Тихан
Потрогал лапой паяльник
Сообщения: 346
Зарегистрирован: Пн апр 14, 2008 19:57:20
Контактная информация:

Сообщение Тихан »

Про часы на тини можещь поподробней а то сижу весь вечер и почти не сдвинулся с места.
Съел сам, помоги соседу. Соседу мясо вредно:)
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

WildCat давал ссылку на свой сайт с обучалками, спасибо ему :))
http://avr.easycoding.org/bascom_lessons/index.htm
Там в разделе о прерываниях есть о таймерах.
По переполнению таймера считаеш импульсы (60*60*24=86400) и уже далее вычисляеш часы минуты секунды.
Аватара пользователя
Тихан
Потрогал лапой паяльник
Сообщения: 346
Зарегистрирован: Пн апр 14, 2008 19:57:20
Контактная информация:

Сообщение Тихан »

Почитал про таймер,ка вычислять я кажется поняль а что там за импульсы(60*60*24=86400)?Про это не понял...
Съел сам, помоги соседу. Соседу мясо вредно:)
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

в сутках 86400 секунд, суточный цикл.
в подпрограмме, по переполнению таймера переменную счета увеличиваеш на 1. А потом уже из нее вычисляеш часы и минуты в основном цикле.
Аватара пользователя
Тихан
Потрогал лапой паяльник
Сообщения: 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
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

На ноге Д.4 у тини висит таймер0, и если ты используеш таймер0 как прерывание, то нога Д.4 не работает как порт.
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

pavel123 писал(а):На ноге Д.4 у тини висит таймер0, и если ты используеш таймер0 как прерывание, то нога Д.4 не работает как порт.

Что вы человека в заблуждение вводите?. На порту д4 у этого контроллера висит тактовый вход таймера. Использование прерываний от таймера никак не касается этого входа. Только в случае если тактирование таймера настроено от внешнего сигнала (от пина Т0) таймер будет считать переходы сигнала (либо 1-0 либо 0-1 в зависимости от настроек), но даже в этом случае пин Т0 (PORTD4) может быть настроен как выход, просто при манипулировании этим выходом из программы таймер будет считать. Об этом ясно написано в даташите. Так что не вносите сумятицы.
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

А вот кто-нибудь сталкивался с таким интересным глюком. Вводим следующий текст:

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

dim a as byte
a=255
a=a+1
lcd a

И на реальном LCD видим 256 :shock: Во встроенном симуляторе вроде всё работает нормально.
Аватара пользователя
pavel123
Грызет канифоль
Сообщения: 268
Зарегистрирован: Чт май 17, 2007 09:44:13
Откуда: Украина, г. Кривой Рог

Сообщение pavel123 »

smac писал(а): Так что не вносите сумятицы.

По ходу, я не прав :( , прошу прощения. :)
Проверил, работает. :)
Спасибо за подсказку.
Аватара пользователя
Тихан
Потрогал лапой паяльник
Сообщения: 346
Зарегистрирован: Пн апр 14, 2008 19:57:20
Контактная информация:

Сообщение Тихан »

Заменил Роrtd.4 на Рortd.6 Таже история Че делать?
Съел сам, помоги соседу. Соседу мясо вредно:)
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Сообщение Radan »

На http://bascomavr.3bb.ru объявлен конкурс:
В связи с надвигающимися праздниками Новым годом и Рождеством Христовым, а так же с целью популяризации программы BASCOM объявляется второй ежегодный конкурс на лучшую конструкцию с её (программой) использованием. Победителей ждут призы - лицензионное ПО от его создателя Марка Альбертса и другие не менее ценные призы от учредителей конкурса. Более подробно об условиях читайте в соответствующей ветке форума. Пусть победят сильнейшие!
Аватара пользователя
Vl@dimir
Встал на лапы
Сообщения: 81
Зарегистрирован: Вт май 06, 2008 17:31:04
Откуда: Брянск

Сообщение Vl@dimir »

Может ли кто накидать программку для Atmega8 на экран 16*2 что бы при включении выдавалось на экране в
первой строке отображалось 0 1 2 3 4 5 6 7 8 9 1 1 1 2 1 3
второй строке отображалось 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Сообщение max50 »

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

$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
Откуда: Владивосток
Контактная информация:

Сообщение Gryphon »

Привет всем форумчанам! Решил вот сделать часы на 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

Простите за неграмотный код-другого не мог придумать :lol:
Часы вот уже тридцать минут работают и все ОК, но проблема-нельзя настроить их. Вопрос-как сделать опрос кнопок так, чтобы индикатор не мерцал и прибавлял столько-сколько было нажатий.
P.S. Может кто-то делал похожее. Если так-выкладывайте.
:)
Вы получаете от людей больше, если им противоречите
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Сообщение max50 »

По моему проще взать ds1307. В ней есть часы и полный календарь.
Вот рабочая программа часов на mega16. Вывод часов, даты. Установка 4-мя кнопками. Будут вопросы, пиши!
Вложения
ds1307 kot.txt
рабочая программа часов на mega16
(5.6 КБ) 1124 скачивания
Аватара пользователя
Vl@dimir
Встал на лапы
Сообщения: 81
Зарегистрирован: Вт май 06, 2008 17:31:04
Откуда: Брянск

Сообщение Vl@dimir »

Спасибо max50 завтра попробую!

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

Сообщение max50 »

Странно! Перед тем, как скинуть, проверил. У меня все отлично работало! А код скинь.

Проверил еще раз, все работает!
Попробуй по этой схеме.
Вложения
P-CAD.GIF
Схема часов
(115.58 КБ) 1003 скачивания
Аватара пользователя
Vl@dimir
Встал на лапы
Сообщения: 81
Зарегистрирован: Вт май 06, 2008 17:31:04
Откуда: Брянск

Сообщение Vl@dimir »

max50 а не ошибка ли?
На шине 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 скачивание
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Сообщение max50 »

Конечно же ошибка! Схему рисовал в торопях, не заметил.
Ответить

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