программируемый таймер

Обсуждаем цифровые устройства...
Ответить
бараныч
Родился
Сообщения: 12
Зарегистрирован: Сб июл 23, 2011 03:51:36

программируемый таймер

Сообщение бараныч »

Здраствуйте уважаймые форумчане! Суть моей проблемы такова((( Облазил весь инет в поиске схемы такого устройства которое могло бы замыкать контакт (не силовой) раз в час , затем ещё раз но уже с интервалом 5 сек, и цикл снова повторяется час, затем 5 сек и так до бесконечности..... Я не силён к сожалению в радиоэлектронике но опыт прошивки мк ест но вот программу написать сам не могу(( ах да хотелось бы что нибуть на тиньках 13 или 2313 так как они у меня есть...
Реклама
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: программируемый таймер

Сообщение coredumped »

Вот, лови. tiny13 с "часовым" кварцем (32768Гц).
Таймер генерит прерывание каждую секунду, все манипуляции происходят в обработчике. Сигнал выдается на 1 секунду.
Если чего непонятно, пишите.

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

#include <ctype.h>
#include <stdint.h>
#include <stdio.h>

#include <avr/io.h>
#include <avr/interrupt.h>


#ifndef F_CPU
#define F_CPU 32768UL  //cpu freqency
#endif


volatile uint16_t time;
volatile uint8_t phase;

ISR(TIM0_COMPA_vect)
{
	time++;	
	switch(phase)
	{
		case 0: if(time == 3600)
				{
					PORTB = 0x07; //set PB0..PB2 = 1	
					phase = 1;
					time = 0;
				}
				break;
						
		case 1: PORTB = 0; // clear PB lines
				phase = 2;
				break;
		case 2: if(time == 5)
				{
					PORTB = 0x07; //set PB0..PB2 = 1	
					phase = 3;
					time = 0;
				}
				break;

		case 3: PORTB = 0; // clear PB lines
				phase = 0;
				break;
	}

}

int main(void)
{
	time = 0;
	phase = 0;
	DDRB = 0x07; //set PB0..PB2 as output	
	PORTB = 0;
	
	TCNT0 = 0;
	OCR0A = 0x7F;		//Set T0 to generate 1s period (F_CPU = 32768Hz) 	
	TIMSK0 = 1<<OCIE0A; //Enable interrupt 
	TCCR0A = 1<<WGM01; 	//CTC Mode
	TCCR0B = 0x4; 		// ptrscaler = 256
	sei();	

	for(;;);	
	return 0;
}
Все будет только лучше, в крайнем случае - хуже.
Реклама
бараныч
Родился
Сообщения: 12
Зарегистрирован: Сб июл 23, 2011 03:51:36

Re: программируемый таймер

Сообщение бараныч »

возможно ли реализовать без использования кварца? дело в отсутствие запчастей и моей удалённости от цивилизации(( в моём родном маленьком городе ниодного магазина радиодеталей нет а заказывать по интернету очень долго((( для меня важной роли не играет точнось, если даже время будет за час опаздывать или спешить на 10мин это не критично...
Ответить

Вернуться в «Цифровая техника»