Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Счетчик-таймер на ATtiny

Непрочитано 21.08.2011, 02:04  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Счетчик-таймер на ATtiny

Понадобился мне счетчик и таймер в одном исполнении, который бы считал секунды и минуты в обоих направлениях.. Пересмотрел все поисковики, того, что мне надо, не нашел.
В готовый исходный код на СИ для счетчика вставил обратный отсчет (правильно ли?, но работает), а дальше застопорился. Программирование только начал осваивать, и не могу сделать предустановку времени для обратного отсчета (импульсы установки через 0.25-0.5сек.), а так же, чтобы при счете мигала раз в секунду разделительная точка.
Может, кто поможет мне спраиться с этой задачей?
Как при пуске зажечь светодиод, а при остановке потушить?
Как сделать, что бы при достижении прямого счета 59.59 счет останавливался?
Вопросов больше, чем ответов с моей стороны. Может вообще я пошел не тем путем? Пересмотрел много исходников и этот мне наиболее понятен.
Исходный код для CodeVisionAVR и схема во вложенном файле.
Вложения:
Тип файла: rar clock.rar (200.2 Кб, 355 просмотров)
Реклама:
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
Непрочитано 21.08.2011, 04:40  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Секундный таймер с нулевой погрешностью http://piclist.ru/S-ZERO-ERR-TIMER-R...TIMER-RUS.html
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Сказали "Спасибо" CERGEI1982
warel (28.06.2019)
Непрочитано 21.08.2011, 09:51  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

CERGEI1982,
Цитата:
Секундный таймер с нулевой погрешностью
Это не то, что мне надо. Тем более, что пример на асме, а я его совсем не знаю.
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
Непрочитано 22.08.2011, 08:18  
BolshoyK
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

m3:
tik++;
if (tik›9) {tik=0; des_tik++;}
if (des_tik›9) {des_tik=0; sec++;}
if (sec›9) {sec=0; des_sec++;}
if (des_sec›5) {des_sec=0; min++;}
if (min›9) {min=0; des_min++;}
if (des_min›5) {tik= des_tik = sec = des_sec = min= des_min=0;}
if ((des_min == 0) & (min == 0) & (des_sec == 0) & (sec == 5)) { start = 0; }
Последняя строка - это то что добавить надо.
Параметры останова сам уж скорректируешь.

Последний раз редактировалось BolshoyK; 22.08.2011 в 08:23.
BolshoyK вне форума  
Сказали "Спасибо" BolshoyK
warel (28.06.2019)
Непрочитано 22.08.2011, 10:08  
heady69
Прописка
 
Регистрация: 25.09.2009
Адрес: Ivanovo
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 67 раз(а) в 60 сообщении(ях)
heady69 на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Код таймера из одной "поделки"


/
Код:
*программа обработки прер. от RTC INT1 (DS1307  вывод времени)  */
void rtc_int (void) interrupt 2 using 1
	{	
		unsigned char j;

		rtc_interrupt=1;	   //отмечаем прерывание

	 	if (timer_mode){				//режим таймера
		if (!timer_on) goto timer_out;	//если выключен-просто вывод значения таймера
			if(!timer_direction){		//прямой счет таймера?
   				if (++seconds == 60)  {     //увеличиваем секунды
      	   				seconds = 0;
      	 		if (++minuts == 60)  {  	//увеличиваем минуты
        				minuts = 0;
           		if (++hours == 99)  { 	//увеличиваем часы
          	  			hours = 0;  }}}
				}
		   	else{					   //обратный счет
				if (!seconds && !minuts && !hours) goto timer_out; //таймер ==0 -выход

				if (seconds) --seconds;		//уменьшаем время таймера
      	   			else {
							seconds=59;
							if (minuts) --minuts;
								else{
									minuts=59;
									--hours;}}
				if (!seconds && !minuts && !hours) { //таймер обнулился-попищим

						sound_duration=sound_long;
						mute=0;				  	
						sound_on=1;	}

				}

Последний раз редактировалось heady69; 22.08.2011 в 10:11.
heady69 вне форума  
Сказали "Спасибо" heady69
warel (28.06.2019)
Непрочитано 22.08.2011, 10:55  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от BolshoyK Посмотреть сообщение
Последняя строка - это то что добавить надо.
Счетчик останавливается, но повторно не запускается даже после сброса, только если выключить и включить питание! Я думаю, что тогда нужно ставить отдельно кнопки пуск и стоп, а портов не хватает.
Пробовал перейти на MEGA8, но уменя что-то не получилось. Знаний маловато.
CVAVR ругается на код:
Код:
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
, в MEGA8 нет CLKPR, а чем заменить, я не знаю. С таймерами у меня туго, настройки TIMER0 там другие.

heady69,
Цитата:
Код таймера из одной "поделки"
Спасибо, буду пробовать!
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
Непрочитано 22.08.2011, 12:00  
uzamar
Частый гость
 
Регистрация: 24.11.2006
Сообщений: 32
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 8 сообщении(ях)
uzamar на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
Код:
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
Выкинуть совсем этот кусок.
uzamar вне форума  
Сказали "Спасибо" uzamar
warel (28.06.2019)
Непрочитано 22.08.2011, 12:02  
BolshoyK
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
Счетчик останавливается, но повторно не запускается даже после сброса, только если выключить и включить питание!
У меня все запускается, если нажать на сброс. Строка симулирует нажатие кнопки стоп, при достижении нужного значения. Тестировал на том, что привел в примере - 5 секунд. Ждать час для теста нет желания Вообще, лучше разобраться детально в своей проге, чтобы ЗНАТЬ как она работает, чем просто повторить чужой код.
BolshoyK вне форума  
Сказали "Спасибо" BolshoyK
warel (28.06.2019)
Непрочитано 22.08.2011, 12:04  
BolshoyK
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
в MEGA8 нет CLKPR, а чем заменить, я не знаю. С таймерами у меня туго, настройки TIMER0 там другие.
В CVAVR Есть визард который сделает тебе шаблон. Отуда и скопируй всю инициализацию.
BolshoyK вне форума  
Сказали "Спасибо" BolshoyK
warel (28.06.2019)
Непрочитано 22.08.2011, 13:00  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Счетчик-таймер на ATtiny

Сообщение от Dimitrij Посмотреть сообщение
Понадобился мне счетчик и таймер в одном исполнении, который бы считал секунды и минуты в обоих направлениях.. Пересмотрел все поисковики, того, что мне надо, не нашел.
В готовый исходный код на СИ для счетчика вставил обратный отсчет (правильно ли?, но работает), а дальше застопорился. Программирование только начал осваивать, и не могу сделать предустановку времени для обратного отсчета (импульсы установки через 0.25-0.5сек.), а так же, чтобы при счете мигала раз в секунду разделительная точка.
Может, кто поможет мне спраиться с этой задачей?
Как при пуске зажечь светодиод, а при остановке потушить?
Как сделать, что бы при достижении прямого счета 59.59 счет останавливался?
Вопросов больше, чем ответов с моей стороны. Может вообще я пошел не тем путем? Пересмотрел много исходников и этот мне наиболее понятен.
Исходный код для CodeVisionAVR и схема во вложенном файле.
Через чур замудренный исходник... Выкинуть в корзину и написать с нуля!
Зачем переходы использовать и зачем использовать цикл с условием?! Изза этого бреда программа и затыкается.

напиши так:

прерывание(в нем динамическая индикация)

в основном цыкле переменная инкриментируется или декрементируется в зависимости от состояния флага и при достижении определенного значения счет останавливается. Я такого плана программки писал под заказ, при чем штук 100 различных вариаций. Самая последняя программка с эфектом миллисекундного досчета при установке нужного значения, симпатично получилось.

Вот мой проект, его можно доработать так как тебе нужно.


Если проблему не решишь сам, могу помочь.
Вложения:
Тип файла: rar Простой таймер OFF,10,20,30,40,50,60сек.rar (104.9 Кб, 414 просмотров)
artyomugr вне форума  
Сказали "Спасибо" artyomugr
warel (28.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
газ счетчик Mastino Информация по радиокомпонентам 2 31.03.2006 23:57
[Решено] Таймер для Ксеноновых ламп ближнего света Гость Электроника средств транспорта 6 17.01.2006 22:51
таймер и симуляция в MPLAB Sim lisergin Микроконтроллеры, АЦП, память и т.д 0 16.01.2006 15:35
Задача - таймер. и прерывание! chipic128 Микроконтроллеры, АЦП, память и т.д 11 22.02.2005 17:11


Часовой пояс GMT +4, время: 22:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.