Таймер на ATMega8 в Bascom-AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

ZN-GAME писал(а):
pavel1979 писал(а):и не нужно считать коэф деления и назначать подпрограмму прерывания
Хм.. так даже проще.

If _hour = 4 Then
If _min = 0 Then set portd.0
end if
If _hour = 8 Then
If _min = 0 Then set portd.0
end if
If _hour = 12 Then
If _min = 0 Then set portd.0
end if
и т.д. верно ведь?
подправил,да,как обычный китайский будильник,я делал,гдето на форуме есть исходник-надо искать
Реклама
vek
Вымогатель припоя
Аватара пользователя
Сообщения: 563
Зарегистрирован: Чт апр 16, 2009 04:53:41

Сообщение vek »

А у меня вопрос.Что там под юбкой у этой подпрограммы?
Я правильно понимаю ? :
мы рано или поздно нарываемся на подпрограмму часов,а в её теле просто читаем содержимое TCNT, чего-то там еще делаем полезного и выходим.
Никаких пустых циклов,просто считающих сами себя. И никаких прерываний
Верно?
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
Реклама
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

просто конфигурация прерывания,начальная установка времени и все!
lcd $time-вроде так-точно не помню,надо искать,показывает время в формате часы:мин:сек
есть вроде дата-надо искать,вот нашел хороший пример http://atmega.blog.ru/,я както на спор писал программу часов-уместился в 30 строк против 113 в си(у моего оппонента)
vek
Вымогатель припоя
Аватара пользователя
Сообщения: 563
Зарегистрирован: Чт апр 16, 2009 04:53:41

Сообщение vek »

30 слов думаю нормально будет.
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

Прошил - не работает. Только кварц на 16Мгц.
Спойлер$regfile = "m8def.dat"
$Crystal=16000000
$hwstack = 16
$swstack=16
$framesize = 16


Config Portd.0 = Output
Config Portc.5 = Output
Config Clock = Soft
_sec = 0 : _min = 0 : _hour = 0
Config Timer1 = Counter , Edge = Falling , Prescale = 1

Rel1 Alias Portd.0
Led1 Alias Portc.5


Do
If _min = 5 Then
Rel1 = 1
Led1 = 1
Wait 5
Rel1 = 0
Led1 = 0
End If
Loop
End
Return
Реклама
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

нужен кварц именно на 32768,подключаем к osc1 osc2 и после Config Timer1 = Counter , Edge = Falling ,,Prescale = 1 надо разрешить прерывания
Enable Interrupts 'разрешаем прерывания
в программе так и оставьте 16 мгц
или сделайте как для кварца 16 мгц,я подсказывал как подправить программу
Реклама
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

В фьюзах источник тактов неправильно выставил. ATMega8 на помойку.. Завтра новый возьму и докуплю кварц на 32. Странно фьюзы настраиваются в bascom. Через какие программы еще можно, которые поддерживают usbasp?
По коду ошибок хоть нету? Кроме включения всех прерываний.
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

ZN-GAME писал(а):В фьюзах источник тактов неправильно выставил. ATMega8 на помойку.. Завтра новый возьму и докуплю кварц на 32. Странно фьюзы настраиваются в bascom. Через какие программы еще можно, которые поддерживают usbasp?
По коду ошибок хоть нету? Кроме включения всех прерываний.
программа вроде правильно,сам думаю проверить
сам в баском с фьюзами не разобрался,попробуйте припаять кварц 4-8 мгц,если фьзы не прочитаются-подайте внешний сигнал частотой 1 кгц-8 мгц,обычно помогает
иногда помогает если припаять к одному из выв куда подключается кварц кусочек провода и при прошивке держите провод за другой конец-за счет наводок 50 гц она может ожить,я сам много в первое время запорол тини и атмег,почти все вылечил этими средствами,а потом вообще доктора собрал
а вот еще-можно поробовать снизить скорость считывания-прошивки мк,на программаторе должна быть перемычка
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

pavel1979 писал(а):программа вроде правильно,сам думаю проверить
сам в баском с фьюзами не разобрался,попробуйте припаять кварц 4-8 мгц,если фьзы не прочитаются-подайте внешний сигнал частотой 1 кгц-8 мгц,обычно помогает
Спасибо за советы! Будет свободное время попытаюсь восстановить, а так лучше новый пока возьму. Если вдруг надумаете проверить программу - отпишитесь пожалуйста о результатах. Интересно все же :)
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

Снова улетел еще один Atmega8, пытался выставить fuse на такты от кварца в 32768гц. Fuse был под битом 011001. Буду новый ставить.. подскажите как fuse правильно выставить. Хотя бы на примере PonyProg или лучше khazama AVR. Благодарю!
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

а зачем вы ставите на 32768?у вас $Crystal=16000000
сам кварц 32768 к этому никакого от ношения не имеет
выставленные фюзы (в понипроге стоят галки на):CKOPT,BOOTSZ1,BOOTSZ0,SUT1,SUT0,CKSEL3,CKSEL1,CKSEL0
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

подайте внешний сигнал 1 кгц и попробуйте перепрошить на заводские,я вам писал как, вот еще http://www.getchip.net/posts/068-kak-pr ... -fuse-bit/
главное не паниковать-еще все можно исправить,сам нарывался не раз
можно попробовать подпаять кварц 455 кгц с конденсаторами 22 пф,они стоят в пультах ду,приемниках китайских встречаются
или кварц 32768
попробуйте уменьшить скорость программирования
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

pavel1979 писал(а):а зачем вы ставите на 32768?у вас $Crystal=16000000
сам кварц 32768 к этому никакого от ношения не имеет
$Crystal=16000000 так и оставил не трогал. Только фьюзы пытался выставить.
Откуда бы еще взять сигнал на 1 кгц :)
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

ZN-GAME писал(а):
pavel1979 писал(а):а зачем вы ставите на 32768?у вас $Crystal=16000000
сам кварц 32768 к этому никакого от ношения не имеет
$Crystal=16000000 так и оставил не трогал. Только фьюзы пытался выставить.
Откуда бы еще взять сигнал на 1 кгц :)
повторяю-у вас $Crystal=16000000,значит и фьюзы на 16000000!!!внутренний генератор

можно скрин фьюзов-то что вы изменили?
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

pavel1979 писал(а):нужен кварц именно на 32768,подключаем к osc1 osc2 и после Config Timer1 = Counter , Edge = Falling ,,Prescale = 1 надо разрешить прерывания
но
pavel1979 писал(а):повторяю-у вас $Crystal=16000000,значит и фьюзы на 16000000!!!внутренний генератор
я запутался))
pavel1979 писал(а):можно скрин фьюзов-то что вы изменили?
В том то и дело, что сейчас уже не сделать - нет связи с МК. Назывался Fuse как-то Ext. Low-Freq. Crystal; Start-up time PWRDWN/RESET: 32K, но это не полное название.
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

жаль,никак не пойму-как ставить фьюзы в баском
попробую прошить через другой программатор и прочитать в баском

странно,усбасп не работает...не видит кристалл...вообще никакие кристаллы не видит,только вчера все шил
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

Хм.. может другой программатор нужен?
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

вот так должно быть
с усбасп драйвер слетел,никак не найду,,,
Вложения
аб.jpg
(48.1 КБ) 669 скачиваний
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

pavel1979 писал(а):вот так должно быть
с усбасп драйвер слетел,никак не найду,,,
Ок, спасибо. Попробую вечером.
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

Сообщение AlekseyV »

Прошил, поставил CKOPT = 0 - заработало, но не совсем... Светодиоды загораются, но не гаснут. Только через минуту гаснут и все больше ничего не происходит.
Вот прошивка и фьюзы.
Спойлер$regfile = "m8def.dat"
$crystal = 8000000

Config Portd.0 = Output
Config Portc.5 = Output


Config Clock = Soft
_sec = 0 : _min = 0 : _hour = 0
Config Timer1 = Counter , Edge = Falling , Prescale = 1

Dim Xmin As Single : Xmin = 1

Enable Interrupts
Enable Timer1

Do
If _min = 1 Then : Portd.0 = 1 : Portc.5 = 1 : Waitms 40 : Portd.0 = 0 : Portc.5 = 0 : Xmin = _min + 1 : End If
Loop
End
01.png
(43.94 КБ) 595 скачиваний
Варианты фьюзов в SinaProg
СпойлерATmega8 0x80 0x00 Brown-out detection level at VCC=4.0 V; [BODLEVEL=0]
ATmega8 0x80 0x80 Brown-out detection level at VCC=2.7 V; [BODLEVEL=1]
ATmega8 0x40 0x00 Brown-out detection enabled; [BODEN=0]
ATmega8 0x3f 0x00 Ext. Clock; Start-up time: 6 CK + 0 ms; [CKSEL=0000 SUT=00]
ATmega8 0x3f 0x10 Ext. Clock; Start-up time: 6 CK + 4 ms; [CKSEL=0000 SUT=01]
ATmega8 0x3f 0x20 Ext. Clock; Start-up time: 6 CK + 64 ms; [CKSEL=0000 SUT=10]
ATmega8 0x3f 0x01 Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0001 SUT=00]
ATmega8 0x3f 0x11 Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0001 SUT=01]
ATmega8 0x3f 0x21 Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0001 SUT=10]; default value
ATmega8 0x3f 0x02 Int. RC Osc. 2 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0010 SUT=00]
ATmega8 0x3f 0x12 Int. RC Osc. 2 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0010 SUT=01]
ATmega8 0x3f 0x22 Int. RC Osc. 2 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0010 SUT=10]
ATmega8 0x3f 0x03 Int. RC Osc. 4 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0011 SUT=00]
ATmega8 0x3f 0x13 Int. RC Osc. 4 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0011 SUT=01]
ATmega8 0x3f 0x23 Int. RC Osc. 4 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0011 SUT=10]
ATmega8 0x3f 0x04 Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms; [CKSEL=0100 SUT=00]
ATmega8 0x3f 0x14 Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0100 SUT=01]
ATmega8 0x3f 0x24 Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 SUT=10]
ATmega8 0x3f 0x05 Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0101 SUT=00]
ATmega8 0x3f 0x15 Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0101 SUT=01]
ATmega8 0x3f 0x25 Ext. RC Osc. - 0.9 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0101 SUT=10]
ATmega8 0x3f 0x35 Ext. RC Osc. - 0.9 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0101 SUT=11]
ATmega8 0x3f 0x06 Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0110 SUT=00]
ATmega8 0x3f 0x16 Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0110 SUT=01]
ATmega8 0x3f 0x26 Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0110 SUT=10]
ATmega8 0x3f 0x36 Ext. RC Osc. 0.9 MHz - 3.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0110 SUT=11]
ATmega8 0x3f 0x07 Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=0111 SUT=00]
ATmega8 0x3f 0x17 Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=0111 SUT=01]
ATmega8 0x3f 0x27 Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=0111 SUT=10]
ATmega8 0x3f 0x37 Ext. RC Osc. 3.0 MHz - 8.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=0111 SUT=11]
ATmega8 0x3f 0x08 Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 0 ms; [CKSEL=1000 SUT=00]
ATmega8 0x3f 0x18 Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 4 ms; [CKSEL=1000 SUT=01]
ATmega8 0x3f 0x28 Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 64 ms; [CKSEL=1000 SUT=10]
ATmega8 0x3f 0x38 Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 6 CK + 4 ms; [CKSEL=1000 SUT=11]
ATmega8 0x3f 0x09 Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4 ms; [CKSEL=1001 SUT=00]
ATmega8 0x3f 0x19 Ext. Low-Freq. Crystal; Start-up time: 1K CK + 64 ms; [CKSEL=1001 SUT=01]
ATmega8 0x3f 0x29 Ext. Low-Freq. Crystal; Start-up time: 32K CK + 64 ms; [CKSEL=1001 SUT=10]
ATmega8 0x3f 0x0a Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1010 SUT=00]
ATmega8 0x3f 0x1a Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1010 SUT=01]
ATmega8 0x3f 0x2a Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1010 SUT=10]
ATmega8 0x3f 0x3a Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1010 SUT=11]
ATmega8 0x3f 0x0b Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1011 SUT=00]
ATmega8 0x3f 0x1b Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1011 SUT=01]
ATmega8 0x3f 0x2b Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1011 SUT=10]
ATmega8 0x3f 0x3b Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1011 SUT=11]
ATmega8 0x3f 0x0c Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1100 SUT=00]
ATmega8 0x3f 0x1c Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01]
ATmega8 0x3f 0x2c Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1100 SUT=10]
ATmega8 0x3f 0x3c Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1100 SUT=11]
ATmega8 0x3f 0x0d Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1101 SUT=00]
ATmega8 0x3f 0x1d Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1101 SUT=01]
ATmega8 0x3f 0x2d Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1101 SUT=10]
ATmega8 0x3f 0x3d Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1101 SUT=11]
ATmega8 0x3f 0x0e Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 4 ms; [CKSEL=1110 SUT=00]
ATmega8 0x3f 0x1e Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1110 SUT=01]
ATmega8 0x3f 0x2e Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 0 ms; [CKSEL=1110 SUT=10]
ATmega8 0x3f 0x3e Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 4 ms; [CKSEL=1110 SUT=11]
ATmega8 0x3f 0x0f Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 64 ms; [CKSEL=1111 SUT=00]
ATmega8 0x3f 0x1f Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 0 ms; [CKSEL=1111 SUT=01]
ATmega8 0x3f 0x2f Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms; [CKSEL=1111 SUT=10]
ATmega8 0x3f 0x3f Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms; [CKSEL=1111 SUT=11]
Ответить

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