Цитата(snayperAlfa @ Aug 25 2009, 02:44)

Точно.
Сделал по совету папы кодовый замок на AVR. Прицепил туда клавиатурную матрицу, LCD 2*16. ЖК подсоеденил чтобы не казалось слишком просто для препода. Еще сделал возможность изменения основного кода с клавиатуры и записью онного в EEPROM. Работает однако.
Поздравляю! В далеком 2003 освоил pic16f84 именно, собрав кодовый замок. Затем, в 2004 - at90s2313, и тоже на кодовом замке. Правда там еще UART был задействован для связи с "сервером" - комп 286 под ДОСом. На нем хранилась база юзеров и паролей. Т.е. кодовый замок был по сути дела клавиатурой и не более. Он слал введенный пароль на сервер, а тот уже проводил верефикацию и решал - пускать или нет)
Цитата(snayperAlfa @ Aug 25 2009, 02:44)

ПОтом переносил это дело из Codevision в WinAVR, потому что по условиям задания нужно разработать прогу в бесплатном компиляторе.
Так чем же удобнее CV? Нужно было сразу в WinAVR начинать) Тем более, не смотря на бесплатность, не такой уж он и отсталый от коммерческих брендов, таких, как IAR.
Цитата(snayperAlfa @ Aug 25 2009, 02:44)

Пришлось варить котелком потому что WinAVR не понимает такого как
Код
if(!PINA.4){
. Пришлось заменять на
Код
if(!(PINA & (1<<4))){
, хотя у меня почемуто сомнения насчет правильности последнего, но работает все правильно и безошибочно.
И правильно делает, что не понимает!

Все эти PINX.? не более, чем макросы и расширения языка, не переносимые, как Вы уже выяснили. Стандартный подход, ну для AVR точно, именно с использованием маски! А пример Ваш верный, не сомневайтесь!
Цитата(snayperAlfa @ Aug 25 2009, 02:44)

Точно.
Функции для ЖК писал сам, типа похвалюсь.
И правильно, что сами! Ну если учиться, конечно, хотите! Пользоваться готовыми либами IO для таких простых МК, как AVR, я не рекомендую и смысла в них не понимаю.