реклама на сайте
подробности

 
 
> как прочесть порт
schulgin
сообщение May 12 2012, 16:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 27-06-07
Пользователь №: 28 739



Отлаживаю в Кейле с помощью симулятора программу.
Цифровые выходы обозначил битовыми пременными например так "sbit rabota = P2^0;" Всё хорохо, когда пишу в порт, но когда пытаюсь использовать этот идентификатор в какой ни буть операции, например, "if (rabota)" или просто его присвоить другой переменной ничего не получается. Компилируется без ошибок, а операции или присвоения не выполняются. Пытался это сделать с помощью маскировки порта, например "P2 & 0x01" та же самая история по отдельности все значения просматриваются, а результат другой.
Промучился почти целый день, а результат ноль. Уж очень достало, помогите!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
редактор
сообщение May 17 2012, 11:32
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Цитата
Отлаживаю в Кейле с помощью симулятора программу.

Не у всех моделей кристаллов нормально поддерживается перефирия (даже порты). Например отладчик в Keil 4.23 про периферию силабс 580 ничего не знает, хотя периферию силабс 310 отображает целиком.
Проверить можно, если открыть вкладку перефирии. Если есть порты, то часто бывает, что виртуальные регитсры не всегда синхронизируются правильно. Например: Записали в порт 0, в защелке порт сбросился и на "внешний вывод" выдал 0 (обычно это два разных регистра). После записи в этот порт 1 в регистре "внешний вывод" останется 0 (симулятор воспринимает его уже как внешний входной сигнал), так как "внешний вывод" содержит 0, то при чтении с него, также будет считан 0 (ведь чтение осуществляется непосредственно с вывода "pin" а не с защелки.

Поэтому для симулятора использование промежуточных регистров - нормальное решение. Еще как вариант - попробовать какой нибудь аналогичный кристалл. Ну а на железе все должно прийти в норму. Удачи.



--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- schulgin   как прочесть порт   May 12 2012, 16:00
- - Палыч   Цитата(schulgin @ May 12 2012, 20:00) ......   May 14 2012, 05:40
- - schulgin   Спасибо за отклик. Немного лирики. Кейлом и написа...   May 14 2012, 08:35
|- - Kolia   Меня смущает эта строчка pusk = 0; фактически в...   May 14 2012, 09:09
|- - schulgin   Цитата(Kolia @ May 14 2012, 12:09) Меня с...   May 14 2012, 09:40
|- - Kolia   Цитата(schulgin @ May 14 2012, 12:40) ...   May 14 2012, 10:07
- - schulgin   Большое спасибо Бельченко. Собственно, прочитав ег...   May 14 2012, 10:44
|- - Kolia   Цитата(schulgin @ May 14 2012, 13:44) Бол...   May 14 2012, 12:34
|- - Палыч   Цитата(schulgin @ May 14 2012, 14:44) Всё...   May 14 2012, 13:01
|- - Kolia   Цитата(schulgin @ May 14 2012, 15:41) Кол...   May 14 2012, 13:21
|- - Палыч   ТС так и не сказал: как определяет, что программа ...   May 14 2012, 13:38
- - schulgin   Коля, когда Вы сказали, что можно и логический ан...   May 14 2012, 12:41
- - schulgin   Цитата(Палыч @ May 14 2012, 16:01) Чтобы ...   May 14 2012, 13:40
|- - Палыч   Цитата(schulgin @ May 14 2012, 17:40) Пал...   May 14 2012, 16:53
|- - Kolia   У меня в uV3 все четко работает...   May 14 2012, 21:49
- - schulgin   Спасибо за участие. После добавления промежуточных...   May 15 2012, 07:44
- - Harbinger   Если мне память не изменяет, в силабсах по дефолт...   May 17 2012, 16:48
- - редактор   ЦитатаЕсли мне память не изменяет, в силабсах по д...   May 18 2012, 07:14


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016