Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: PWM-Signale von Fernsteuerung erkennen Kategorie: Programmierung ASM (von holger - 13.02.2004 12:04)
 Als Antwort auf Re: PWM-Signale von Fernsteuerung erkennen von tu - 8.02.2004 12:43
> 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

Bisherige Antworten:

Re: PWM-Signale von Fernsteuerung erkennen (von tu - 14.02.2004 19:29)
    Re: PWM-Signale von Fernsteuerung erkennen (von holger - 4.03.2004 11:59)
        Re: PWM-Signale von Fernsteuerung erkennen (von tu - 5.03.2004 23:37)
            Re: PWM-Signale von Fernsteuerung erkennen (von holger - 23.03.2004 11:25)
                Re: PWM-Signale von Fernsteuerung erkennen (von tu - 2.04.2004 23:34)
                    Re: PWM-Signale von Fernsteuerung erkennen (von holger - 5.04.2004 11:50)
                       Re: PWM-Signale von Fernsteuerung erkennen (von tu - 21.04.2004 21:51)