
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Das Assembler-Programm: > > portb  .equ 1 > >    .org $101 > >    lda #0     ; User-Bytes 1 bis 4 auf Null setzen >    sta $0A1 >    sta $0A2 >    sta $0A3 >    sta $0A4 > >            ; Puls an Portpin 1 dekodieren             > w_hi_1 lda portb    ; Port 1 einlesen >    and #1     ; Pin 1 ausmaskieren >    bne w_lo_1   ; weiter wenn high >    bra w_hi_1 > w_lo_1 lda portb    ; Port 1 einlesen >    and #1     ; Pin 1 ausmaskieren >    bne w_lo_1   ; warten bis low > cnt_1  inc $0A1    ; User-Byte 1 inkrementieren >    lda portb    ; Port 1 einlesen >    and #1     ; Pin 1 ausmaskieren >    bne w_hi_2   ; weiter wenn high >    nop >    nop >    nop >    bra cnt_1 >    >            ; Puls an Portpin 2 dekodieren             > w_hi_2 lda portb    ; Port 1 einlesen >    and #2     ; Pin 2 ausmaskieren >    bne w_lo_2   ; weiter wenn high >    bra w_hi_2 > w_lo_2 lda portb    ; Port 1 einlesen >    and #2     ; Pin 2 ausmaskieren >    bne w_lo_2   ; warten bis low > cnt_2  inc $0A2    ; User-Byte 2 inkrementieren >    lda portb    ; Port 1 einlesen >    and #2     ; Pin 2 ausmaskieren >    bne w_hi_3   ; weiter wenn high >    nop >    nop >    nop >    bra cnt_2 > >            ; Puls an Portpin 3 dekodieren             > w_hi_3 lda portb    ; Port 1 einlesen >    and #4     ; Pin 3 ausmaskieren >    bne w_lo_3   ; weiter wenn high >    bra w_hi_3 > w_lo_3 lda portb    ; Port 1 einlesen >    and #4     ; Pin 3 ausmaskieren >    bne w_lo_3   ; warten bis low > cnt_3  inc $0A3    ; User-Byte 3 inkrementieren >    lda portb    ; Port 1 einlesen >    and #4     ; Pin 3 ausmaskieren >    bne w_hi_4   ; weiter wenn high >    nop >    nop >    nop >    bra cnt_3 > >            ; Puls an Portpin 4 dekodieren             > w_hi_4 lda portb    ; Port 1 einlesen >    and #8     ; Pin 4 ausmaskieren >    bne w_lo_4   ; weiter wenn high >    bra w_hi_4 > w_lo_4 lda portb    ; Port 1 einlesen >    and #8     ; Pin 4 ausmaskieren >    bne w_lo_4   ; warten bis low > cnt_4  inc $0A4    ; User-Byte 4 inkrementieren >    lda portb    ; Port 1 einlesen >    and #8     ; Pin 4 ausmaskieren >    bne finish   ; weiter wenn high >    nop >    nop >    nop >    bra cnt_4 > > > finish rts >    .end > > > Das Basic-Programm: > > ' Testprogramm zur Ansteuerung des FMS > '  Knueppelpositionen werden an den Servo-Ausgaengen > '  des Empfaengers abgegriffen > '  FMS-Einstellung: Analoge Steuerung - Serielles PIC-Interface > > define pos1 byte[1] > define pos2 byte[2] > define pos3 byte[3] > define pos4 byte[4] > > baud r9600 > > #mainloop > sys > ' Testausabe auf Terminal > 'print pos1, pos2, pos3, pos4 > ' FMS-Protokoll > put 244 > put 0 > put pos1 > put pos2 > put pos3 > put pos4 > goto mainloop > > end > syscode "ppmdecrx.obj" > Kann mir jemand sagen was #1,#2,#4,#8 im Assemblertext ist. Wenn ich Kanal 5,6,7,8 brauche,was ist dann mit #1,usw. Wird daraus dann #16, #32 usw.? Und was bewirkt "and" genau? Kann ich denn Assemblercode bei C3C auch direkt über #asm ... #endasm einfügen, oder wird das dann wieder zu langsam? Kann ich z.B.: den "BC558" nehmen? Wie lange dauert es eigentlich einen Kanal auszulesen? |
| Antwort schreiben |