Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USART и PIC16F628A
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
vishnu-krishna
Итак, задача простейшая... (Ну я совсем новичок еще... 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. Т.е ошибок тоже вроде никаких нет...

Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...
xemul
Цитата(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' без комментариев никто (я - точно) не будет.
vishnu-krishna
Спасибо, ошибка, действительно, идиотская.. Разобрался...Заработало.
Но есть вопрос по VIRTUAL TERMINAL... Проблема в том, что он почему-то не отображает инфу, приходящую на свой RX. Хотя осциллограф показывает наличие сигнала и на RX и на TX...
Схема:
Нажмите для просмотра прикрепленного файла
На всякий случай прикладываю файл протеуса:
Нажмите для просмотра прикрепленного файла
Буду очень благодарен, если поможете...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.