11-06-2012, 11:27 AM
Natuke kogemust sellest PICi sprintf-st.
On C-s kirjutatud PICi programmi üks lõik.
(Kogu C teksti pikkus 837 rida.)
Transleeritud kujul sai sellest programmist 47 kb hex,
mille listingu sama lõik näeb välja nii:
See buffer viidi siis üle USB tagasi PC-sse ja töödeldi seal.
(Viidi log faili )
Selle PICi hex faili asm logi pikkus on 12656 rida.
Ruumi kokkuhoiu mõttes ma kõike siia ei toonud.
On C-s kirjutatud PICi programmi üks lõik.
(Kogu C teksti pikkus 837 rida.)
Kood:
A=input_buffer[0];
if(A=='T'){
Algseisu();
if(mUSBUSARTIsTxTrfReady()){
sprintf(output_buffer, (const far rom char*)"%c", 'X');
mUSBUSARTTxRam((byte*)output_buffer,strlen(output_buffer));
}
return;
mille listingu sama lõik näeb välja nii:
Kood:
203: Algseisu();
1D18 DE47 RCALL 0x19a8
204: if(mUSBUSARTIsTxTrfReady()){
1D1A 0101 MOVLB 0x1
1D1C 5101 MOVF 0x1, W, BANKED
1D1E E12B BNZ 0x1d76
205: sprintf(output_buffer, (const far rom char*)"%c", 'X');
1D20 0E58 MOVLW 0x58
1D22 6EE6 MOVWF 0xfe6, ACCESS
1D24 6AE6 CLRF 0xfe6, ACCESS
1D26 0E36 MOVLW 0x36
1D28 6E14 MOVWF 0x14, ACCESS
1D2A 0E42 MOVLW 0x42
1D2C 6E15 MOVWF 0x15, ACCESS
1D2E 6A16 CLRF 0x16, ACCESS
1D30 C014 MOVFF 0x14, 0xfe6
1D32 FFE6 NOP
1D34 C015 MOVFF 0x15, 0xfe6
1D36 FFE6 NOP
1D38 C016 MOVFF 0x16, 0xfe6
1D3A FFE6 NOP
1D3C 0E5D MOVLW 0x5d
1D3E 6EE6 MOVWF 0xfe6, ACCESS
1D40 0E01 MOVLW 0x1
1D42 6EE6 MOVWF 0xfe6, ACCESS
1D44 EC37 CALL 0x446e, 0
1D46 F022 NOP
1D48 6E17 MOVWF 0x17, ACCESS
1D4A 0E07 MOVLW 0x7
1D4C 5EE1 SUBWF 0xfe1, F, ACCESS
1D4E 5017 MOVF 0x17, W, ACCESS
206: mUSBUSARTTxRam((byte*)output_buffer,strlen(output_buffer));
1D50 0101 MOVLB 0x1
1D52 0E5D MOVLW 0x5d
1D54 6F02 MOVWF 0x2, BANKED
1D56 0E01 MOVLW 0x1
1D58 6F03 MOVWF 0x3, BANKED
1D5A 0E5D MOVLW 0x5d
1D5C 6EE6 MOVWF 0xfe6, ACCESS
1D5E 0E01 MOVLW 0x1
1D60 6EE6 MOVWF 0xfe6, ACCESS
1D62 ECA9 CALL 0x4752, 0
1D64 F023 NOP
1D66 52E5 MOVF 0xfe5, F, ACCESS
1D68 52E5 MOVF 0xfe5, F, ACCESS
1D6A CFF3 MOVFF 0xff3, 0x106
1D6C F106 NOP
1D6E 0101 MOVLB 0x1
1D70 6B07 CLRF 0x7, BANKED
1D72 0E01 MOVLW 0x1
1D74 6F01 MOVWF 0x1, BANKED
207: }
208: return;
1D76 EF19 GOTO 0x2632
1D78 F013 NOP
209: }
(Viidi log faili )
Selle PICi hex faili asm logi pikkus on 12656 rida.
Ruumi kokkuhoiu mõttes ma kõike siia ei toonud.