| Пн, 02.04.2012, 13:11 | Сообщение # 1
|
[)еНиС
Постов: 5614
Друзья |
|
|
| Пн, 02.04.2012, 17:38 | Сообщение # 2
|
skateman
Постов: 4420
Друзья |
оооо, началось.... вечерком напишуДобавлено (02.04.2012, 17:38) --------------------------------------------- [)еНиС, у тебя вообще какой контроллер под рукой есть из AVR
|
|
| Пн, 02.04.2012, 17:41 | Сообщение # 3
|
[)еНиС
Постов: 5614
Друзья |
Под рукой... Atmega8A-PU
|
|
| Пн, 02.04.2012, 17:50 | Сообщение # 4
|
skateman
Постов: 4420
Друзья |
ну ты пока даташит качай с atmel.com, я тут скоро с работой завязываю и домой поеду, там и поговорим
|
|
| Пн, 02.04.2012, 17:57 | Сообщение # 5
|
[)еНиС
Постов: 5614
Друзья |
Усе скачал, вернее не скачал, в браузере сразу открыл
|
|
| Пн, 02.04.2012, 18:06 | Сообщение # 6
|
[)еНиС
Постов: 5614
Друзья |
Ну щас тогда скачаю 
|
|
| Пн, 02.04.2012, 21:00 | Сообщение # 7
|
skateman
Постов: 4420
Друзья |
Ну раз мега8, то пусть будет она. Открывай даташит там где цоколевка. Тут 3 порта – это PB, PC и PD. За эти 3 порта отвечают 3 регистра DDRx, PINx и PORTx, где x – буква порта. Берем к примеру порт С. Данный порт имеет 7 разрядов PC0…PC6. DDRC – регистр направления передачи данных. Если ты записываешь в разряд этого регистра 1, то разряд порта становится выходом, а если 0, то входом. Например если мы запишем в DDRC двоичное число 01111000, то PC0…PC2 станут входами, а PC3…PC6 – выходами. PORTC – так называемый регистр состояния порта. Если разряд порта настроен на выход, то записью в этот разряд 1 ты выдаешь на вывод контроллера лог.1, если записываешь 0, то лог.0. При настройке разряда порта на вход и записи в соответствующий разряд PORTC 1 ты подключаешь внутренний подтягивающий резистор, т.е. данный вывод через внутренние цепи МК подключается к +Uпит через внутренний резистор, при записи 0 – вывод отключается от внутрянки МК и переводится в Hi-Z состояние. PINC – регистр, из которого можно считать состояние порта, т.е. если разряд порта работает как вход, то считывая значение разряда, можно узнать что на входе МК. Ну, например, считывать состояние кнопки: нажата или отпущена. Ну а теперь немного о командах. Допустим берем все тот же порт С и хотим настроить разряды 0,4,6 на выходы, а остальные сделать входами – значит надо записать туда число 01010001. Запись 8-ми битного числа в РВВ надо вести через один из РОН, т.е. получаем: Code ldi R16, 0b01010001 ;запись константы в РВВ out DDRC, R16 ;пересылки содержимого РОН в РВВ Для установки разряда порта в соответствующий логический уровень есть следующие команды: Code sbi PORTC,0 ; установка 0 разряда в 1 cbi PORTC,0 ; сброс 0-го разряда Ну а если выставить группу битов, то делаем через РОН. Проверка разряда может выполняться через пересылку данных в один из РОН: Либо через команды проверки пропуска: Code sbic PINC,0 ; пропуск следующей команды если бит сброшен, т.е. равен 0 sbis PINC,0 ; пропуск следующей команды если бит установлен, т.е. равен 1
|
|
| Пн, 02.04.2012, 21:37 | Сообщение # 8
|
SssaHeKkk
Постов: 4131
Друзья |
можно вопрос не по теме? а ты кто по профессии?откуда такие знания программирования
|
|
| Вт, 03.04.2012, 08:19 | Сообщение # 9
|
skateman
Постов: 4420
Друзья |
SssaHeKkk, это не знания, а желание себя чем-то занять. А по профессии я инженер, хотя инженерного образования не имею.
|
|
| Вт, 03.04.2012, 09:44 | Сообщение # 10
|
SssaHeKkk
Постов: 4131
Друзья |
хм...сильно 
|
|