таьмер не работает как надо помогите
- Войдите на сайт для отправки комментариев
Пнд, 09/12/2013 - 00:08
#define stop_timer1 TCCR1B=0
#define start_timer1 TCCR1B = (0<<CS12)|(1<<CS11)|(1<<CS10) //частота/64 4mkc
volatile unsigned int periodspeed ; // период
volatile boolean we_stend = true ; //стоим
volatile boolean period_speed = false ; // период загружен ??????
ISR(TIMER1_OVF_vect) //прерывание по таймеру1
{
stop_timer1; //остановка таймера
we_stend = true ; //импульсов небыло больше 1 сек установлен флаг стоим
}
void setup()
{
//TIM_Init();//инициализация таймера
pinMode(11,OUTPUT);
pinMode(2, INPUT); //Вход датчика скорости
Serial.begin(9600);
attachInterrupt(0, speedd, RISING);
}
void loop()
{
digitalWrite(11,LOW);
delay(200);
digitalWrite(11,HIGH);
Serial.println(periodspeed);
}
void speedd() //прерывание по датчику скорости
{
stop_timer1;
if(we_stend == false) periodspeed=TCNT1 , period_speed = true; //если не стоим сохраняется период
TCNT1=0; //сброс счетчика таймера1
start_timer1; //запуск нового цикла
we_stend = false; //едем
}
void TIM_Init(void)
{
stop_timer1;
TCCR1A=0 ;
TCNT1 = 0;
TIMSK1 = (1<<TOIE1); //разрешить прерывание по переполнению таймер1
}
мне нада сколка милисеконд от 0 то 1
volatile unsigned int periodspeed ; // период volatile unsigned int timer1,timer2 ; // период void setup() { //TIM_Init();//инициализация таймера pinMode(11,OUTPUT); pinMode(2, INPUT); //Вход датчика скорости Serial.begin(9600); attachInterrupt(0, speedd, RISING); timer1=millis(); } void loop() { digitalWrite(11,LOW); delay(400); digitalWrite(11,HIGH); Serial.println(timer2); } void speedd() //прерывание по датчику скорости { timer2=millis(); timer2=timer2-timer1; timer1=millis(); }я решил проблему так что думаьте
void speedd() //прерывание по датчику скорости { timer2=millis(); timer2=60000/(timer2-timer1); //delay(1000); detachInterrupt(0); attachInterrupt(0, speedd2, FALLING); } void speedd2() //прерывание по датчику скорости { timer1=millis(); detachInterrupt(0); attachInterrupt(0, speedd, RISING); }Поток сознания ).
сам спрашиваю сам отвечаю. сам над своими шутками смеюсь))