Microchip'i C keel
#7
Natuke kogemust sellest PICi sprintf-st.

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;
Transleeritud kujul sai sellest programmist 47 kb hex,
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:       }
See buffer viidi siis üle USB tagasi PC-sse ja töödeldi seal.
(Viidi log faili Smile )
Selle PICi hex faili asm logi pikkus on 12656 rida.
Ruumi kokkuhoiu mõttes ma kõike siia ei toonud.
Vasta


Sõnumeid selles teemas
Microchip'i C keel - Autor: felch - 06-06-2012, 07:32 PM
RE: Microchip'i C keel - Autor: tvtv - 07-06-2012, 11:16 AM
RE: Microchip'i C keel - Autor: Mtj - 07-06-2012, 06:03 PM
RE: Microchip'i C keel - Autor: felch - 07-06-2012, 08:45 PM
RE: Microchip'i C keel - Autor: andrei - 08-06-2012, 01:18 PM
RE: Microchip'i C keel - Autor: tvtv - 11-06-2012, 10:17 AM
RE: Microchip'i C keel - Autor: A.R. - 11-06-2012, 11:27 AM
RE: Microchip'i C keel - Autor: andrei - 11-06-2012, 01:13 PM
RE: Microchip'i C keel - Autor: A.R. - 13-06-2012, 01:18 PM
RE: Microchip'i C keel - Autor: felch - 13-06-2012, 02:47 PM
RE: Microchip'i C keel - Autor: tvtv - 13-06-2012, 04:14 PM
RE: Microchip'i C keel - Autor: ahelet - 29-06-2012, 03:22 PM
RE: Microchip'i C keel - Autor: tvtv - 03-07-2012, 11:02 AM
RE: Microchip'i C keel - Autor: ahelet - 09-01-2013, 10:04 PM
RE: Microchip'i C keel - Autor: tvtv - 10-01-2013, 12:50 PM
RE: Microchip'i C keel - Autor: A.R. - 10-01-2013, 01:48 PM
RE: Microchip'i C keel - Autor: Teemo - 07-03-2013, 01:39 PM
RE: Microchip'i C keel - Autor: A.R. - 08-03-2013, 11:19 AM
RE: Microchip'i C keel - Autor: Teemo - 08-03-2013, 02:09 PM
RE: Microchip'i C keel - Autor: A.R. - 08-03-2013, 03:56 PM
RE: Microchip'i C keel - Autor: tvtv - 08-03-2013, 06:22 PM
RE: Microchip'i C keel - Autor: tvtv - 20-03-2013, 06:21 PM

Alamfoorumi hüpe:


Kasutaja, kes vaatavad seda teemat: 1 külali(st)ne