Добрый день всем. Нужна помощь с atmega8. Собрал схему на TDA7314S и ATmage8 по статье С.Рюмика из журнала Радиохобби 1/2006. Все отлично, но решил немного добавить в нее изменения, а именно реле задержки включения акустики. Сам написал программу под отладочную плату, прошил, не работает( хотя в Proteus-е все нормально) - не открывается транзистор, хотя выход с МК есть. Как заставить его открыться и как тот код вставить в уже готовый из статьи, т.к. там порты сконфигурированы по другому.
1. По твоей схеме:
Перемести реле в коллектор транзистора. Параллельно обмотке реле поставь диод 1n4148 анодом к коллектору транзистора. Сопротивление в базе транзистора увеличь до 1 кОм. Добавь Еще одно сопротивление 4,7 кОм параллельно переходу БЭ транзистора.
2. По программе:
1. Не совсем понятен алгоритм работы твоей программы.
void pause (unsigned int n)
{
unsigned int i;
for (i=n;i>0;i--);
}
Скорее всего убъется насмерть оптимизатором компилятора. Зачем тебе эта функция? Используй встроенные функции паузы.
2.Инициализация портов должна происходить в начале программы.
DDRD |= _BV(PD1);
_delay_ms(1000); //1 сек
3. А зачем бесконечное число раз через каждую секунды включать реле?
while(1)
{
for(n=0;n<14;n++)
_delay_ms(1000);
PORTD=0x02;
}