Страница 1 из 1
Перегрузка ATMega8 ... Датчик пульса!!!
Добавлено: Вт окт 06, 2009 19:52:02
serglegmelnik
Проблема в следующем , нашел схемку датчика пульса который посылает цифровой сигнал на вход до МК , ещё использую микросхему ds1307 для времени которая опрашиваетца в таймере кажную секунду ...до сих пор проблем не било дале решил написать код подщета вот что выдумал :
//sec обновляться каждую секунду таймером
unsigned char Puls()
{
p=0;
s=sek ;
sek=0;
while(s!=sek)
{
if(PIND.5==0)
{
p++;
while(PIND.5==0 && s!=sek) {}
}
}
return p;
}
CodeVision ошибок не видает а вот при роботе в протеусе МК перегружаетца ....
В чем проблема?
Добавлено: Вт окт 06, 2009 22:11:59
Pooher
А сторожевой таймер в протеусе активирован?
Добавлено: Вс окт 11, 2009 13:57:21
serglegmelnik
Pooher писал(а):А сторожевой таймер в протеусе активирован?
Как ето зделать? ... в свойствах МК?
Добавлено: Вс окт 11, 2009 14:51:11
urry
именно протеус некорректно работает со сторожевым таймером. Проще забить сброс где-то в основном цикле #asm("wdr");
Добавлено: Вс окт 11, 2009 16:09:14
serglegmelnik
urry писал(а):именно протеус некорректно работает со сторожевым таймером. Проще забить сброс где-то в основном цикле #asm("wdr");
Не помогло ... могу скинуть проект вам на мейл может я чет не так делаю?
Добавлено: Вс окт 11, 2009 16:43:17
urry
Проще - в личку.
Я Ваш код не понимаю... Наверное, Вы хотите померить, сколько раз за секунду изменится pinb5 . Как Вы синхронизируете процедуру с началом секунды ?
Здесь как бы проситься включение второго таймера в счетном режиме, который будет запускать - останавливать секундный таймер.
Добавлено: Вс окт 11, 2009 17:07:22
serglegmelnik
urry писал(а):Проще - в личку.
Я Ваш код не понимаю... Наверное, Вы хотите померить, сколько раз за секунду изменится pinb5 . Как Вы синхронизируете процедуру с началом секунды ?
Здесь как бы проситься включение второго таймера в счетном режиме, который будет запускать - останавливать секундный таймер.
Да...
...Ну как текущии показания sek повторяться через 60 сек (например если сечас 21 с то такая цифра в sek появиться только через 1 минуту ... напомню sek меняется в переривании второго таймера каждую 1 с непосредствино считиваясь с микросхеми реального времени )
...Задум такой чтоб визивать ету функцию когда мне угодно и чтоб она возвращала мне число ударов за минуту
Можно ли какой то другой таймер в меге 8 подключить в етом режиме и как ето зделать (включать и отключать когда надо)