Mám takový problém - jenoho krásného dne z mi neznámé příčiny odmítl MPSIM v MPLABU poslušnost , při simulování programu místo dat obsažených v souboru začal sypat blbosti . A blbostmi myslím to , že na RCREGu mám permamentně jako nově příchozí znak 255 , nebo se periodicky střídají dva nahodilé znaky - toť vše . A né a né jej přinutit , aby data odpovídala *.txt souboru zadaného v nastavení . Název souboru bez diaktiky , zkrácení cesty na minimum , nepovolení převinutí po konci souboru , nic z toho zdá se nemá žádný vliv . Úmyslně jsem funkčnost testoval i na již oddladěném programu , tam se ale taky nechytá - tím jakš takš vylučuji špatný blok inicializace v kódu .
Test funkčního programu byl na kódu pro 16F628A , simulaci UARTU nutnou pro odladění se pokouším prioritně rozchodit u 16F887 .
Pro případ , že by jádro pudla skutečně bylo v pojistkách , přikládám inkriminovaný blok kódu.
Po třech hodinách marných pokusů o rozchození to již vzdávám ...
Nějaké nápady ?
Kód: Vybrat vše
INIT
bcf STATUS,RP1
bsf STATUS,RP0
;banka 1
movlw b'10000000' ; portA 7-0
movwf TRISA
movlw b'11111111' ; portB 7-0,
movwf TRISB
movlw b'11001000' ; portC 7-0,
movwf TRISC
movlw b'00000001' ; portD 7-0,
movwf TRISD
movlw b'1000' ; portE 3-0,
movwf TRISE
MOVLW B'00101110'
MOVWF TXSTA
clrf SPBRGH
MOVLW 12
MOVWF SPBRG
CLRF PIE1
BSF PIE1,RCIE
CLRF PIE2
movlw b'01010110' ; PULL-UPy ON, preddelic=1:128 pripojen k TMR0
movwf OPTION_REG ;
movlw b'11111111'
movwf WPUB ;pullup na celém RB
clrf ADCON1
clrf IOCB
bsf STATUS,RP1 ; nastaveni BANKY 1
bcf STATUS,RP0 ; nastaveni BANKY 0
;banka 2
clrf CM1CON0
clrf CM2CON0
bsf STATUS,RP1 ; nastaveni BANKY 1
bsf STATUS,RP0 ; nastaveni BANKY 0
;banka 3
clrf ANSEL ; všechny piny jsou digitální
clrf ANSELH
movlw B'10010000'
movwf BAUDCTL
bcf STATUS,RP1 ; nastaveni BANKY 1
bcf STATUS,RP0 ; nastaveni BANKY 0
;banka 0
clrf CCP1CON ;komparátory off
clrf CCP2CON
movlw B'10010000'
movwf RCSTA
CLRF INTCON
BSF INTCON,T0IE
BSF INTCON,GIE
BSF INTCON,PEIE
clrf TMR0 ; nulovat TMR0 (i jeho preddeličku)
clrf ADCON0 ; vypnutí AD
clrf 05
clrf 06
clrf 07
clrf 08
clrf 09
clrf W_save
clrf Sta_sav
clrf PCL_sav
clrf FSR_sav
clrf TMP0_TMR
clrf TMP1_TMR
clrf TMP2_TMR
clrf TMP3_TMR
clrf TMR_POM
clrf EE_ADR
clrf RX_POZ
clrf RX_POM
clrf ADR_RX
clrf DATA_RX
clrf DATA_RX_0
clrf DATA_RX_1
clrf DATA_RX_2
clrf DATA_RX_3
clrf DATA_TX
clrf COMM_TX
clrf TMP0
clrf TMP1
clrf TMP2
clrf TMP
clrf IND_ADR
clrf ADR_TMP
clrf M_pritomne
clrf Prep_poz
clrf TMP_M
clrf Priznaky
movlw d'1'
MOVWF ADR_Aktivni
clrw