|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 6:21 am
|
Страница 1 от 1
|
[ 2 мнения ] |
|
| Автор |
Съобщение |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
 UART проблем, PIC16F913
Здравейте.
Имам следната инициализация:
, стъпка по стъпка, както се препоръчва в даташийта: В прекъсване от TMR1 правя следното:  |  |  |  | Код: BCF PIR1,TMR1IF INCFSZ counter,F GOTO isr_exit MOVLW byte0 ;В този момент със сигурност не се предава байт, MOVWF TXREG ;така че пиша директно. BCF T1CON, TMR1ON ;reload TMR1 BSF T1CON, TMR1ON BTFSS Operating_status, specific_event_occurred ;Ако е настъпило определено събитие, GOTO isr_exit BCF Operating_status, specific_event_occurred ;трябва да изпратя още три байта BTFSS PIR1,TXIF ;(време за предаването им има достатъчно) GOTO $-1 MOVF byte1,W MOVWF TXREG BTFSS PIR1,TXIF GOTO $-1 MOVF byte2,W MOVWF TXREG ; for test purposes BTFSS PIR1,TXIF GOTO $-1 MOVLW byte3 ;някакъв маркер, по който разбирам MOVWF TXREG ;дали се изпълнява тази секция |  |  |  |  |
За да видя резултата, ползвам 'UART Tool'-а на PICKit2. Там обаче се вижда, че изпращам само byte0, byte 2 и byte3. Та, къде по дяволите изчезва byte1 ??? 'UART Tool'-а ли е бъгав или аз не правя нещо като хората?
Слушам предложения и акъл.
|
| Чет Юни 12, 2008 5:17 pm |
|
 |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
Сега пробвах да слушам през КОМ-а на РС-то. Оказа се, че не е от PicKit-а, обаче със следващите редове проблема се оправя:
т.е. ако всеки байт след byte0 се зарежда по 2 пъти, всичко е ок. Ако някой има логично обяснение за ситуацията, черпя бира. 
|
| Чет Юни 12, 2008 9:24 pm |
|
|
|
Страница 1 от 1
|
[ 2 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|