Технический форум по робототехнике.
Duhas » 06 май 2011, 13:17
день добрый. в проетусе после такой операции
- Код: Выделить всё • Развернуть
ldi tmp2, 15
out PORTB, tmp2
out DDRB, tmp2
swap tmp2
out PORTB, tmp2
out DDRB, tmp2 ;вот в этот момент
в регистре PINB остаются выставлеными 4 младших бита..
в студии все ок... вешаемся с челом пишущим обработчик клавиатуры ))
Victorovych » 09 май 2011, 13:39
Похоже где-то в другом месте установка происходит, или привет протеусу...
Duhas » 09 май 2011, 19:02
установка чего ? pinx ? в portx и ddrx нули.. а в пинах - единицы... протеус 7.7.. я человеку конечно сказал ставить другой протеус и пробовать.. но черт знает..
Victorovych » 09 май 2011, 21:52
Если это весь код работающий с портом, тогда "эпидемия ящура"
avr123.nm.ru » 09 май 2011, 22:21
прожект нужен.
d3xr » 24 июн 2011, 12:41
Чем грозит защита портов ввода/вывода МК токоограничивающими резисторами? Глюков никаких не будет у подключаемых устройств? Хочу на неиспользуемые порты по 220ОМ повесить, дабы при подключении чего-либо риск спалить порты был минимальным.
dccharacter » 24 июн 2011, 12:45
ничем
d3xr » 24 июн 2011, 15:31
вообще на все? (rx-tx например)
dccharacter » 24 июн 2011, 15:35
А зачем нужны эти резисторы?
d3xr » 24 июн 2011, 18:56
Если вдруг кз.. Или низкоомную нагрузку сдуру подключу
dccharacter » 24 июн 2011, 19:41
d3xr писал(а):Если вдруг кз.. Или низкоомную нагрузку сдуру подключу
Ну да! Соответственно и защищайте _то, что боитесь спалить_.
osc » 07 июл 2011, 18:13
Не нужны они, зря боитесь.
otter » 28 июл 2011, 16:24
Здраствуйте,уважаемые форумчане.Сам я мк пока не занимался,но сегодня коллеги попросили узнать, если ли в C функция разделяющая число ( у них 2-байтное) на старшие и младшие байты?Программируют atmega2560 на плате stk600.Вроде формируют ШИМ сигнал для управления сервами,если я конечно ничего не путаю.Помогите пожалуйста инвалиду мозга.
Drunya » 26 сен 2011, 21:54
Можно сделать так:
- Код: Выделить всё • Развернуть
#define HI(val) (unsigned char)(val>>8)
#define LO(val) (unsigned char)(val)
либо
- Код: Выделить всё • Развернуть
unsigned char high_byte (unsigned int val) { return (unsigned char)(val >> 8); }
unsigned char low_byte (unsigned int val) { return (unsigned char)(val); }
А у меня следующий вопрос: зачем иногда в дефайнах употребляется выражение
- Код: Выделить всё • Развернуть
#define BLA-BLA() do { bla-bla-bla } while (0)
avr123.nm.ru » 26 сен 2011, 22:27
выполнить 1 раз.