Свежие обсуждения
Микроконтроллеры

AVR начинающим - вопросы и ответы

1 25 68

все бы хорошо,но такое колличество спама...а название темы очень даже ничего,если бы только содержимое соответствовало названию...

 

Вот полезный архив-проект : LCD графический MT12864 - 128x64 точки. исходники для CVAVR и симуляция в PROTEUS - Прекрасно компилируется и симулируется. Можно симулировать в PROTEUS без компиляции - все файлы в архиве есть.

150261.rar

 

В чем может быть причина того что по программе у меня PORTA.7 должен в определенный момент обнуляться,в AVR-STUDIO он обнуляется, а вот в железе не хочет?
Что сложного в этом :
if (zarad_prodol==1)
{
PORTA.7=1;
}
else
PORTA.7=0;

На этой ножке светодиод.

 

А что за микроконтроллер? Посмотрите, может какие фьюзы надо посбрасывать - это наиболее типичная причина. Посмотрите также DDRA

 

контроллер ATTINY26L
Нога контроллера настроена на выход,изначально на ней 0 :
PORTA=0b01000011;
DDRA=0b10111100;
Фузы настроены на 1 МГЦ внутреннего генератора
еще установлен бит SPIEN и BODEN

 

ASM листинг посмотрите или приложите сюда архив с проектом.

 

Присоединяюсь.

 

ИМХО нужно за правило принять - к вопросу прикладывать архив с проектом. Тогда гораздо проще посмотреть и подсказать.

Если есть секреты то удалить секретные места и проверить на глюк - если он остался то выкладывать архив и спрашивать.

 

В общем задача следущая:
Зарядное устройство подключено к схеме.Зажигается PORTA.7 (светодиод)
PORTA.5 управляет включением-выключением ЗУ. Необходимо заряжать,допустим 1 мин,выключать PORTA.5 (ЗУ), ждать 10 сек, и проверять напряжение на АЦП. Если оно меньше то продолжить, если больше то не включать больше PORTA.5 и выключить PORTA.7. Так вот он у меня и не гаснет (PORTA.7)

nabeg_na_prov++; //считаем время (1 мин)
if (nabeg_na_prov>5000)
{ //если прошла 1 мин
PORTA.5=0; //то выключаем ЗУ
i++; //запуск счетчика с выключенным ЗУ
}
if (i>1000) //если прошло 10 сек
{
i=0; //обнуляем
nabeg_na_prov=0; //обнуляем
/* и заходим на проверку напряжения */
if (adc_data>810+8) //если>то не включаем
{
PORTA.5=0;
zarad_prodol=0;
PORTA.7=0;
y=0;
konez=0;
}
if (adc_data810-8) //если меньше то включаем
{
PORTA.5=1;
zarad_prodol=1;
PORTA.7=1;
};
}

 

Вот тоже самое в WORD

151067.doc