Добрый день, возникли трудности с работой с МК. Это мой первый практический опыт в паянии и работе с МК.
Есть схема ультразвукового дальномера, пока собрал кусок: питание, кнопки управление, МК и 7сегм индикатор.
Столкнулся с проблемой, когда начал писать простенькую прошивку. Цель прошивки: просто отображать какие-то крякозяблы поочереди на 3х знакоместах (использую динамику). Пишу и шьюсь через винавр:
#include <avr/io.h>
#include <util/delay.h>
int main()
{
DDRB = 0xFF;
DDRD = 0xFF;
for(;
{
PORTB = 0b00110011;
PORTD = 0x40;
_delay_ms(1000);
PORTD = 0x0;
//
PORTB = 0b01010101;
PORTD = 0x20;
_delay_ms(1000);
PORTD = 0x0;
//
PORTB = 0b11001100;
PORTD = 0x10;
_delay_ms(1000);
PORTD = 0x0;
}
return(0);
}
Не могу понять почему, но информация отображается сразу на всех знакоместах. Проверял прошивку в Протеусе, там все работает. Следовательно, проблема со спаянной схемой.
Меня настараживает что моя тинька, когда на выводах лог 0, выдает 1,2-1,3 В !!!. Следовательно, напряжение после ограничивающих резюков перед транзисторами, колеблется от 0,74 В (когда на выводе PD6 (PD5 или PD4) лог 0) и до 0,82 В (когда лог 1). Думаю, что проблема в этом. То есть напряжения 0,74 и 0,82 способствуют постоянному открытию транзисторов.
Опыта мало, так что надеюсь на ваше помощь!(Отредактировано автором: 06 Мая, 2010 - 18:32:08) |