программируемый таймер
программируемый таймер
Здраствуйте уважаймые форумчане! Суть моей проблемы такова((( Облазил весь инет в поиске схемы такого устройства которое могло бы замыкать контакт (не силовой) раз в час , затем ещё раз но уже с интервалом 5 сек, и цикл снова повторяется час, затем 5 сек и так до бесконечности..... Я не силён к сожалению в радиоэлектронике но опыт прошивки мк ест но вот программу написать сам не могу(( ах да хотелось бы что нибуть на тиньках 13 или 2313 так как они у меня есть...
- Реклама
- coredumped
- Опытный кот
- Сообщения: 838
- Зарегистрирован: Вт апр 12, 2011 18:38:19
- Откуда: с Земли
Re: программируемый таймер
Вот, лови. tiny13 с "часовым" кварцем (32768Гц).
Таймер генерит прерывание каждую секунду, все манипуляции происходят в обработчике. Сигнал выдается на 1 секунду.
Если чего непонятно, пишите.
Таймер генерит прерывание каждую секунду, все манипуляции происходят в обработчике. Сигнал выдается на 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;
}
Все будет только лучше, в крайнем случае - хуже.
Re: программируемый таймер
возможно ли реализовать без использования кварца? дело в отсутствие запчастей и моей удалённости от цивилизации(( в моём родном маленьком городе ниодного магазина радиодеталей нет а заказывать по интернету очень долго((( для меня важной роли не играет точнось, если даже время будет за час опаздывать или спешить на 10мин это не критично...
