Цитата(GIGAWAT @ Feb 16 2007, 00:46)

Собственно я прочитал в книге "Применение микроконтроллеров AVR. Схемы, алгоритмы, программы (Баранов В.Н.)".
Там написано:
Вот...
Порт вроде не сжог, ибо проверял на осцилографе уровни сигналов.
Это ещё один и не самый яркий пример, как цитата вырванная из контекста вводит в заблуждение начинающих программеров.
Итак. То что там написано (как не странно) совершенно правильно. Но это совсем не означает, что так надо и делать. Смысл написанного сводится к тому, что данные регистры имеют различный смысл. А чтобы это понять надо было полностью прочитать описание порта. Короче при выводе 1 в порт и закоротке её на землю ток по данной ноге будет стремится к бесконечности и будет ограничен лишь мощностью ноги порта (может быть свыше 40ма правда), сопротивлением контакта кнопки, мощностью источника. Что данная нога выйдет из строя - нет ни каких сомнений. Это лишь вопрос времени. Ещё раз привожу правильную инициализацию порта
DDRB = 0xfe; // B0 на ввод
PORTB != 1; // Кнопку подпереть
Цитата
Цитата(beer_warrior @ Feb 15 2007, 23:32)

Цитата
Код
DDRD = 0xFF; DDRB = 0xFF; // Настройка порта D и B для вывода
1.И что вы хотите прочитать с PINB?
2.Анализ идет по всему PINB. а не по биту.
Ну вроде так:
PINB в temp
если (temp (истина, не ноль)) {дога нуль на порт с диодом} иначе {единицу на порт с диодом}
или я неправ

if((PINB & 1) == 0) то кнопка нажата