-
        
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Funkübertragung bei PICS

  1. #1
    Gast

    Funkübertragung bei PICS

    Hi Leute,
    ich hänge gerade ziemlich fest bei meinem PIC.
    Ich soll das so machen, das der PIC Signal bekommt von 0 und 1.
    es sind dazwischen zeiten, die überprüft werden müssen.
    wenn z.b. ein bit 2ms lang ist soll das für das programm heißen er soll starten mit der messung des drucks und der pedalkraft.
    also bisher hab ich dies gemacht:
    - initialisiert von porta und b
    - die bänke freigeschaltet
    - unter RA4 eingestellt das er einen taktherstellen soll
    - und einen timer damit steuern soll

    das was jetzt aber fehlt, wo ich aber nich weiter weiss, ist die überprüfung der zeit die er benötigt .

    wenn ihr mir helfen könntet wäre ich euch überaus dankbar. ^_^

    Danke im Vorraus



    D.Stolarek

  2. #2
    Gast

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    zusätzlich hab ich noch diese info

    es gibt 4 bit reihenfolgen (4mal 8bit)
    einmal:
    sync bit dauer 2ms
    dbyte bit dauer 1 und 0,5 ms
    flags bit dauer 1 und 0,5 ms
    und als letztes noch
    chk bit dauer 1 und 0,5 ms

    Bitte helft wenn ihr könnt

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    18.05.2004
    Ort
    Aachen
    Beiträge
    33
    Hi du,
    ich würde das so machen,
    soblad an meinem Eingang ein 1 Signal anliegt, wird mittels einer Schleife
    eine Variable hochgezählt. Einfach immer Variable+1 und danach schauen ob noch ein 1 Signal anliegt. Wenn der Eingang von 1 auf 0 wechselt, wird die Schleife verlassen und du kannst anhand der Anzahl der Takte in der Variable schauen, wie lange der Impuls war.
    Wenn das Signal von 1 auf Null wechselt schreibst du wieder eine Schleife, die dir wieder Takte in eine Variable schreibt solange du eine Null erhälst, so kannst du jedes Impuls-, Pausenverhältniss genau ausmessen.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    naja aber mein problem ist das ich das in assembler programmieren muss und ich nich sorecht weiss wie ich eine schleife machen kann und eine abfrage damit der dieses signal findet

    also ich schreib mal eben was ich genau schreiben soll bzw machen soll:

    Entwickelt werden soll ein Funkpedalempfänger, der die vom Funkpedalkraftmesser übertragene Pedalkraft dekodiert und in ein analoges Spannungssignal im Bereich von 0 bis 1 Volt umsetzen.

    mein problem daran das ich ein neuling bin in der pic programmierung und nach hilfe Suche ich habe bisher nur die initialisierung von porta und b gemacht und einen timer freigeschaltet

    das heißt eine RA4 Takt hab ich auch gemacht und auf die LowFlanke gesetzt und das Timer Register hab ich auf 0 gesetzt

    also wenn was TOTAL falsch ist sofort sagen und ich versuchs besser zu machen

    main
    ;************************************************* ****
    ;* hier werden die einzelnen Ein-/Ausgänge und *
    ;* die Bänke 0/1 initialisiert *
    ;************************************************* ****
    ;*************************
    ;* Bank Write Verify *
    ;*************************
    BCF STATUS, RP0 ; Bank 0
    ; ; hier kann irgendein
    ; ; Code rein
    MOVF EEDATA, W ; muss in Bank 0 sein
    BSF STATUS, RP0 ; Bank 1
    Read
    BSF EECON1, RD ; Ja, lies den Inhalt von Write
    BCF STATUS, RP0 ; Bank 0
    SUBWF EEDATA, W ;
    BTFSS STATUS, Z ; ist ein unterschied 0?
    ;GOTO Write_ERR ; No, schreib Error
    ;*************
    ;* PortA *
    ;*************
    BCF STATUS, RP0 ;
    CLRF PORTA ; Initialisierung von PortA
    ; durch löschen des Data latches
    BSF STATUS, RP0 ; Markiere Bank 1
    MOVLW 0x0F ; nutzen für den DatenVerzeichniss
    MOVWF TRISA ; SET RA<3:0> als Input
    ; SET RA4 als Output
    ;*************
    ;* PortB *
    ;*************
    BCF STATUS, RP0 ;
    CLRF PORTB ; Initialisierung von PortA
    ; durch löschen des Data latches
    BSF STATUS, RP0 ; Markiere Bank 1
    MOVLW 0xCF ; nutzen für den DatenVerzeichniss
    MOVWF TRISB ; SET RA<3:0> als Input
    ; SET RB<5:4> als Output
    ; SET RB<7:6> als Output
    ;************************************************* ****
    ;* hiermit wird der Timer0 mit dem RA4 verbunden *
    ;* es wird der eigene Takt verwendet und nich *
    ;* der PIC-Takt *
    ;************************************************* ****
    BSF T0CS, 1 ; hier wird in der Speicherzelle T0SC die 1 gesetzt
    MOVF T0CS, 1 ; nun wird es unter der Speicherzelle gesichert
    ;************************************************* ****
    ;* hier drunter wird die Low-Flanke ausgewählt *
    ;* für RA4, damit er weiss wo er hochzählen soll *
    ;************************************************* ****
    BSF T0SE, 0 ; hier wird für RA4 die Low Flake gewählt
    MOVF T0SE, 1 ; hier wird es unter der Speicherzelle gesichert
    ;************************************************* ****
    ;* hier drunter wird nun der Inhalt des gezählten *
    ;* gesichert in dem Register TMR0 *
    ;************************************************* ****
    MOVWF T0SE ; hier wird nun das Register auf die Speicherzelle geschrieben
    MOVF TMR0, 0 ; das ist das Timer-Register

    [schild=16 fontcolor=00008B shadowcolor=000000 shieldshadow=1]BITTE[/schild][schild=16 fontcolor=00008B shadowcolor=000000 shieldshadow=1]Helft[/schild][schild=16 fontcolor=00008B shadowcolor=000000 shieldshadow=1]Mir[/schild][schild=16 fontcolor=00008B shadowcolor=000000 shieldshadow=1]!?!?[/schild]

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    hab da mal ne frage
    hmm...
    Wie kann ich das machen, das ich mit dem befehl BTFSC oder halt BTFSS eine bestimmte zeit herausfinde?
    also das wenn er überprüfen würde ob SYNC 2ms oder nur 0,5ms ist

    BITTE HELFT

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    hi leute
    hab mal eben eine andere frage:
    wie kann ich zwischen den Bänken hin und her wechseln?

    Danke im Vorraus ^_^
    ---

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    14.07.2004
    Beiträge
    34
    Hab nicht so den Plan von Assembler
    aber auf www.sprut.de wird das sehr gut erklärt

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    ja stimmt habs voll vergessen da mal wieder rein zu schauen ^_^
    danke joker
    ---

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    18.05.2004
    Ort
    Aachen
    Beiträge
    33
    Also da kann ich dir leider auch nicht weiter helfen weil ich alles in C schreibe, sorry.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •