Страница 1 из 1
Хелп с кодом
Добавлено: Сб ноя 03, 2007 00:33:46
_LeO_
Вот внедряюсь в микро контролеры ))
и написал такой код для диодной матрицы
Код: Выделить всё
#include <avr>
#include <avr>
int main (void)
{
PORTD |= 0x01;
while(1)
{
if (bit_is_clear(PIND,PD0))
{
DDRA |= 0x01;
PORTA |= 0x01;
DDRB |= 0x01;
}
else
{
DDRA |= 0x00;
PORTA |= 0x00;
DDRB |= 0x00;
}
}
return 0;
}
Но странный глюк - диод на матрице загорается и не потухает ((
Добавлено: Сб ноя 03, 2007 00:48:43
_LeO_
Ой сори )) такой глупый вопрос задал )
убираем опирацию ИЛИ
И все стает на свои места
Код: Выделить всё
if (bit_is_clear(PIND,PD0))
{
DDRA |= 0x01;
PORTA |= 0x01;
DDRB |= 0x01;
}
else
{
DDRA = 0x00;
PORTA = 0x00;
DDRB = 0x00;
}

Добавлено: Сб ноя 03, 2007 10:20:10
Krik99
Схему выложи и напиши поподробней про то что тебя интересует!

Добавлено: Сб ноя 03, 2007 10:41:31
tych
DDRA наверно не нужно постоянно переключать.
Добавлено: Сб ноя 03, 2007 14:32:53
Krik99
Попробуй вот так (конешно если я правельно понял что тебе надо)

:
Код: Выделить всё
DDRA = 0xff; // Делаем порт А как выход
DDRB = 0xff; // Порт В как выходы
DDRD = 0x00; // Делаем порт D как вход
if (bit_is_clear(PIND,PD0))
{
PORTA = 0x01;
}
else
{
PORTA = 0x00;
}
Добавлено: Сб ноя 03, 2007 14:49:39
_LeO_
Ды я уже сделал все работает чего надо было добился- просто экспериментирую, теперь переходим на следующий шаг седня буду
с таймером гребанымм разбираться а то у меня позавчера не заладилось я за даташиты и в перед. Ну буим надеятсо седня все получится
Добавлено: Сб ноя 03, 2007 16:03:29
Aheir
Предлагаю переименовать тему. А если Вы намерены задавать здесь все вопросы, которые у Вас возникают при обучении - лучше сразу поиском пользоваться или в "Мелкие вопросы" стучаться.