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

 
 
> USART и PIC16F628A, не работает в Proteus-e..
vishnu-krishna
сообщение Mar 8 2013, 00:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-11-12
Пользователь №: 74 271



Итак, задача простейшая... (Ну я совсем новичок еще... laughing.gif)
1) Послать байт на мк с терминала (COMPIM).
2) Инкриментировать его.
3) Передать результат обратно на терминал (COMPIM).

Код:

;..............................................................(инициализация)
LIST p=16F628A
__config 03FF1h
;..............................................................(прописываем регистры)
STATUS EQU 03h
TRISB EQU 06h
PORTB EQU 06h
TRISA EQU 05h
PORTA EQU 05h
SPBRG EQU 19h
RCSTA EQU 18h
TXREG EQU 19h
RCREG EQU 1Ah
TXSTA EQU 18h
PIE1 EQU 0Ch
PIR1 EQU 0Ch
REG1 EQU 07h
REG2 EQU 08h
CMCON EQU 1Fh
;............................................................
org 0
GOTO START
;............................................................(настраиваем все..)
START
BSF STATUS,5
MOVLW b'1111'
MOVWF TRISA
MOVLW b'00000110'
MOVWF TRISB
MOVLW b'110'
MOVWF SPBRG
MOVLW b'00100000'
MOVWF TXSTA
BCF PIE1,4
BCF PIE1,5
BCF STATUS,5
MOVLW b'10010000'
MOVWF RCSTA
MOVLW b'00000111'
MOVWF CMCON
;.............................................................(прием)
prog BTFSS PIR1,5
GOTO prog
MOVF RCREG,0
MOVWF REG1
INCF REG1,1
;..............................................................(передача)
MOVF REG1,0
MOVWF TXREG
BSF STATUS,5
per BTFSS TXSTA,1
GOTO per
BCF STATUS,5
GOTO prog
END
;...............................................................

Комментариев, которые в скобочках, в коде, естественно, нет.
В результате, при отправке байта, в логе вылетает следующий текст:

[PIC16 MEMORY] PC=0x0015. Attempt to write unimplemented memory location 0x0007 with 0xA8 ignored.
[PIC16 MEMORY] PC=0x0016. Attempt to read unimplemented memory location 0x0007 ignored.
[PIC16 MEMORY] PC=0x0016. Attempt to write unimplemented memory location 0x0007 with 0x01 ignored.
[PIC16 MEMORY] PC=0x0017. Attempt to read unimplemented memory location 0x0007 ignored.

Еще:
При отправке байта, значение в RCREG меняется, однако флаг RCIF (PIR1[5]), всегда почему-то равен 0. Т.е этот RCREG, получается, не заполняется? В то же время в регистре RCSTA, флаги OERR и FERR равны 0. Т.е ошибок тоже вроде никаких нет...

Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
xemul
сообщение Mar 8 2013, 08:44
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(vishnu-krishna @ Mar 8 2013, 04:40) *
В результате, при отправке байта, в логе вылетает следующий текст:

Код
[PIC16 MEMORY] PC=0x0015. Attempt to write unimplemented memory location 0x0007 with 0xA8 ignored.

Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...

Перевожу:
[PIC16 MEMORY] PC=0x0015. Попытка записи в несуществующую ячейку памяти 0x0007 ...
(PC - Program Counter, указывает адрес исполняемой команды)
Вы успели обидеть все онлайн-переводчики?

Ошибка в нежелании ознакомиться с ДШ на контроллер (в данном случае с "FIGURE 4-2: DATA MEMORY MAP"), с мануалом на используемый компилятор и с примерами написания/оформления программ, предоставленными производителем контроллера, компилятора или среды разработки (за протеус ничего не скажу, т.к. не знаю).
Цитата
Ну я совсем новичок еще...

Новичкам обычно приходится много читать.
Для оформления кода или логов в сообщении используйте теги CODE (иконка с рулоном бумаги и зелёным треугольником над окном редактирования) или CODEBOX (для длинных простыней). Это написано в правилах конфы.
Разбираться в лапше из b'01010101' без комментариев никто (я - точно) не будет.
Go to the top of the page
 
+Quote Post
vishnu-krishna
сообщение Mar 9 2013, 20:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 6-11-12
Пользователь №: 74 271



Спасибо, ошибка, действительно, идиотская.. Разобрался...Заработало.
Но есть вопрос по VIRTUAL TERMINAL... Проблема в том, что он почему-то не отображает инфу, приходящую на свой RX. Хотя осциллограф показывает наличие сигнала и на RX и на TX...
Схема:
Прикрепленное изображение

На всякий случай прикладываю файл протеуса:
Прикрепленный файл  WinRAR1.rar ( 14.22 килобайт ) Кол-во скачиваний: 110

Буду очень благодарен, если поможете...
Go to the top of the page
 
+Quote Post

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

 


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


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