ipf 0 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Ну судя по графику я прав. Теперь дело за малым.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCCR0=0x19; delay_ms(20) TCCR0=0x00; delay_ms(20) } Уж сколько раз твердили миру - нельзя в прерываниях звать delay_ms (и прочие разные delay)! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipf 0 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Уж сколько раз твердили миру - нельзя в прерываниях звать delay_ms (и прочие разные delay)! То есть вариант там где было Modulation более правильный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Уж сколько раз твердили миру - нельзя в прерываниях звать delay_ms (и прочие разные delay)! Совсем-совсем-никогда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipf 0 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба В принципе мой барьер сейчас ловит, если я прохожу, загорается светодиод. Конечно если быстро пронести что нибудь перекрыв луч то не среагирует то мне этого и не нужно. Остановился на коде который добавил во вложении в связи с отсутствием понимания графиков....) Если можно покритикуйте код. Спасибо code.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба Совсем-совсем-никогда? Иногда можно, но у того, кто понимает 'когда можно', таких вопросов не возникает :) Если можно покритикуйте код.В коде отсутствует кусок main'а if внутри while'а явно неправильный (компилятор должен был обругаться) Уберите delay из прерывания. Например так: interrupt [TIM0_OVF] void timer0_ovf_isr(void) { static char v=0x19; TCCR0=v; v^=0x19; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipf 0 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба спасибо за модернизацию. , щас попробую на железе. А как в вашем варианте выставлять задержку , между посылками? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба А как в вашем варианте выставлять задержку , между посылками? В моем варианте по каждому тику таймера 0 происходит включение (а по следующему - выключение) посылки Если на выходе нужен не меандр (заполненный 36KHz), то нужен дополнительный счетчик (внутри прерывания) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipf 0 31 октября, 2011 Опубликовано 31 октября, 2011 (изменено) · Жалоба В моем варианте по каждому тику таймера 0 происходит включение (а по следующему - выключение) посылки Если на выходе нужен не меандр (заполненный 36KHz), то нужен дополнительный счетчик (внутри прерывания) Мне как раз и нужен меандр 36 кгц. Спаибо А сколько раз в секунду тикает таймер? Изменено 31 октября, 2011 пользователем ururur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 31 октября, 2011 Опубликовано 31 октября, 2011 · Жалоба А сколько раз в секунду тикает таймер?Не знаю, сколько раз он у вас тикает. Это же ваша программа, вам должно быть виднее :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться