sealbi 0 1 июня, 2011 Опубликовано 1 июня, 2011 · Жалоба Пишу программу на mega8515. К биту A6 припаян через резистор светодиод. DDRA = 0xff; PORTA = 0xff; PORTA = 0xBF; светодиод на зажигается PORTA.6=0; зажигается! В листинге ассемблер правильный. Подскажите, кто знает, что это? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
codenamehawk 0 1 июня, 2011 Опубликовано 1 июня, 2011 · Жалоба Пишу программу на mega8515. К биту A6 припаян через резистор светодиод. DDRA = 0xff; PORTA = 0xff; PORTA = 0xBF; светодиод на зажигается PORTA.6=0; зажигается! В листинге ассемблер правильный. Подскажите, кто знает, что это? Думаете чудо? Посмотрите куда идет второй конец цепи и все поймете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sealbi 0 1 июня, 2011 Опубликовано 1 июня, 2011 · Жалоба Второй конец цепи подключен к +питания. Да и как это влияет, команды ведь логически аналогичные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба В CodeVision ваяете? Покажите код инициализации, листинг и фьюз-биты. Альтернативные функции порта не используете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Второй конец цепи подключен к +питания. Да и как это влияет, команды ведь логически аналогичные?Нарисуйте на схеме путь протекания тока через светодиод. Кокда вы выводите в порт единицу, на выходе появляется напряжение около +5в. На втором выводе светодиода у вас тоже +5в, т.е. на обоих выводах по +5в. Откуда взяться току? Тока нет, светодиод не светится. Все правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Тока нет, светодиод не светится. Все правильно.Так он должен зажигаться и приPORTA &= ~(1<<6); //0xBF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Есть пред[по]ложение. Прогоните через порт бегущий ноль. Возможно, с/д висит не на 6, а на другом разряде. Либо закорочен с соседними. Это в том случае, если эти две строки PORTA = 0xBF; светодиод на зажигается PORTA.6=0; зажигается! формируют одинаковый листинг. Чудес не бывает, а дерьмо случается. © Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба ...формируют одинаковый листинг. Не могут они одинаковый листинг формировать. PORTA = 0xBF - запись байта в порт PORTA.6=0 - очистка одного бита в порту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Не могут они одинаковый листинг формировать. PORTA = 0xBF - запись байта в порт PORTA.6=0 - очистка одного бита в порту. Нормальный компилятор и в том, и в другом случае вставит однобайтную инструкцию очистки бита. Хотя нет, наверно погорячился... Это если бы маску накладывать, то да... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sealbi 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Разобрался, все работает, было заклинивание мозга, перепутал 0x7F и 0xEF. Извмните! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Пользуйтесь конструкцией (1<<x) при работе с масками и битами - мозг меньше будет уставать. Серьёзно. Это если бы маску накладывать, то да...Ага. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба ...перепутал 0x7F и 0xEF Просветите, где там у вас 0x7F и 0xEF? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться