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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 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.RU
 
Регистрация: 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.RU
 
Регистрация: 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.RU
 
Регистрация: 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 код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик количества просмотров slavar1 Обсуждение сайта и форума 4 07.01.2011 20:56
газ счетчик 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 18:11


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot