roboforum.ru

Технический форум по робототехнике.


ATmega 8 не читает порт B

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

ATmega 8 не читает порт B

Сообщение DK10000 » 14 окт 2009, 18:38

Написал небольшую прогу, в которой необходимо, чтобы контроллер выполнял определенные действия в зависимости от того, какой код присутствует на ножках PB0-PB3. Но почему-то контроллер на эти команды не реагирует. Не читает этот порт. Вот листинг частичный


.def temp=R16

ldi temp,$0
out DDRB,temp

T:
in Temp,PINB
cpi Temp,8
breq incremindexX

in Temp,PINB
cpi Temp,12
breq Peresilka
rjmp T


Но почему-то не по одной из этих меток он не убегает. Хотя нужный код (8 или 12 ) до ножек доходит. Может быть, этот порт имеет какие то дополнительные функции, которые мешают ему работать как простой порт I/O.

Добавлено спустя 3 минуты 44 секунды:
Забыл. В протеусе он эти выводы успешно читает и делает то что нужно. А вот в реальности нет :cry:
Аватара пользователя
DK10000
 
Сообщения: 33
Зарегистрирован: 25 ноя 2008, 16:46
Откуда: Томск

Re: ATmega 8 не читает порт B

Сообщение blindman » 14 окт 2009, 18:42

Нужно маскировать те биты, которые не интересуют. Вам нужно проверять всего 2 бита - а вы проверяете все 8. А откуда уверенность, что на неиспользуемых ногах лог. 0 ?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: ATmega 8 не читает порт B

Сообщение DK10000 » 14 окт 2009, 18:49

Ой, кстати это еще вопрос. На остальныех ножках (кроме 4 первых ) я не проверял уровни логические.

Там ведь еще кварц подключен к PB6 и PB7.

То есть мне нужно лишь по этим двум битам (PB2 и PB3) проверять. В обчем ясно. Скажите а кроме кварца остальные альтернативные функции не могут влиять на этот порт?
Аватара пользователя
DK10000
 
Сообщения: 33
Зарегистрирован: 25 ноя 2008, 16:46
Откуда: Томск

Re: ATmega 8 не читает порт B

Сообщение Victorovych » 15 окт 2009, 13:08

А ты их включал?
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

Re: ATmega 8 не читает порт B

Сообщение avr123.nm.ru » 15 окт 2009, 13:36

DK10000 писал(а):Скажите а кроме кварца остальные альтернативные функции не могут влиять на этот порт?

Я вам советую неспеша и ВНИМАТЕЛЬНО прочитать Устройство микроконтроллера AVR на русском языке - http://avr123.nm.ru/02.htm - и многое станет понятным.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 13