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

Thema: Quellcode Richtig??

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.02.2008
    Ort
    Hamm
    Beiträge
    8

    Quellcode Richtig??

    Anzeige

    Hallo alle zusammen!

    Ich habe mir eine 4-Kanal IR Fernbedinung nachgebaut. Diese Funktieoniert aber immer noch nicht. Der Empfänger geht aber der Sender nicht richtig. Jetzt habe ich den Verdacht das der Quellcode falsch ist, bzw. falschprogrammiert ist. Ich habe keine Ahnung von Assembler.

    Des wegen die Frage, sieht einer von euch einen Fehler?

    Wäre schön wenn mir helfen könnte, da die Bauteile sehr teuer wahren.

    MFG
    Andreas

    Sender:

    Code:

    Code:
    ;********************************************** 
    ;                                             * 
    ; sender.asm - 4-Kanal-Fernbedienung - Sender * 
    ;                                             * 
    ;********************************************** 
    ;                                             * 
    ; (c) 2003 by Kai Uwe Schmidt                 * 
    ;                                             * 
    ;********************************************** 
    
                          list p=12F629 
                          include <p12f629.inc> 
                          
                          
    d1                    EQU 0x20 
    d2                    EQU 0x21 
    d3                    EQU 0x22 
    w_temp                EQU 0x23 
    status_temp           EQU 0x24 
                          
                          
                          org 0x00 
                          clrf PCLATH 
                          goto main 
                          
                          org 0x04 
                          movwf w_temp 
                          swapf STATUS, w 
                          bcf STATUS, RP0 
                          movwf status_temp 
                          
                          bsf STATUS, RP0         ; Bank 1 
                          bcf INTCON, 7           ; Alle Interrupts aus 
                          bcf STATUS, RP0         ; Bank 0 
                          
                          btfss GPIO, 0 
                          goto kanal1 
                          btfss GPIO, 1 
                          goto kanal2 
                          btfss GPIO, 2 
                          goto kanal3 
                          btfss GPIO, 4 
                          goto kanal4 
                          
                          swapf status_temp, w 
                          movwf STATUS 
                          swapf w_temp, f 
                          swapf w_temp, w 
                          
                          goto main 
    
    
    Delay_1s              movlw   0x07 
                          movwf   d1 
                          movlw   0x2F 
                          movwf   d2 
                          movlw   0x03 
                          movwf   d3 
    Delay_0               decfsz   d1, f 
                          goto   $+2 
                          decfsz   d2, f 
                          goto   $+2 
                          decfsz   d3, f 
                          goto   Delay_0 
                          goto   $+1 
                          goto   $+1 
                          goto   $+1 
                          return 
                          
    
    send_ir               bsf GPIO, 5 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          bcf GPIO, 5 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          decfsz d1, f 
                          goto send_ir            ; 40 KHz Burst 
                          
                          call Delay_1s           ; 1 s Pause 
                          return 
                          
    
    main                  bcf STATUS, RP0         ; Bank 0 
                          clrf GPIO 
                          movlw 0x07 
                          movwf CMCON             ; GP0..GP2 digital input 
                          bsf STATUS, RP0         ; Bank 1 
                          movlw B'00010111' 
                          movwf TRISIO            ; GP5 Ausgang, GP0..GP4 Eingang 
                          bcf STATUS, RP0         ; Bank 0 
                          
                          bsf GPIO, 5 
                          bcf GPIO, 5 
                          
                          bsf STATUS, RP0         ; Bank 1 
                          bcf INTCON, 7 
                          clrf INTCON 
                          bsf INTCON, 3 
                          movlw B'00010111' 
                          movwf IOC 
                          bsf INTCON, 7           ; GPIO Interrupt On Change 
                          bcf STATUS, RP0         ; Bank 0 
                          
    loop                  sleep 
                          nop 
                          goto loop 
                          
    kanal1                movlw 0x56 
                          movwf d1 
                          call send_ir            ; 8 * 255 
                          goto main 
                          
    kanal2                movlw 0x7F 
                          movwf d1 
                          call send_ir            ; 12 * 255 
                          goto main 
                          
    kanal3                movlw 0xA8 
                          movwf d1 
                          call send_ir            ; 16 * 255 
                          goto main 
                          
    kanal4                movlw 0xD1 
                          movwf d1 
                          call send_ir            ; 20 * 255 
                          goto main 
                          
                          goto main 
    
                          end

    und der

    Empfänger:

    Code:
    Code: 
    
    ;********************************************** 
    ;                                             * 
    ; sender.asm - 4-Kanal-Fernbedienung - Sender * 
    ;                                             * 
    ;********************************************** 
    ;                                             * 
    ; (c) 2003 by Kai Uwe Schmidt                 * 
    ;                                             * 
    ;********************************************** 
    
                          list p=12F629 
                          include <p12f629.inc> 
                          
                          
    d1                    EQU 0x20 
    d2                    EQU 0x21 
    d3                    EQU 0x22 
    w_temp                EQU 0x23 
    status_temp           EQU 0x24 
                          
                          
                          org 0x00 
                          clrf PCLATH 
                          goto main 
                          
                          org 0x04 
                          movwf w_temp 
                          swapf STATUS, w 
                          bcf STATUS, RP0 
                          movwf status_temp 
                          
                          bsf STATUS, RP0         ; Bank 1 
                          bcf INTCON, 7           ; Alle Interrupts aus 
                          bcf STATUS, RP0         ; Bank 0 
                          
                          btfss GPIO, 0 
                          goto kanal1 
                          btfss GPIO, 1 
                          goto kanal2 
                          btfss GPIO, 2 
                          goto kanal3 
                          btfss GPIO, 4 
                          goto kanal4 
                          
                          swapf status_temp, w 
                          movwf STATUS 
                          swapf w_temp, f 
                          swapf w_temp, w 
                          
                          goto main 
    
    
    Delay_1s              movlw   0x07 
                          movwf   d1 
                          movlw   0x2F 
                          movwf   d2 
                          movlw   0x03 
                          movwf   d3 
    Delay_0               decfsz   d1, f 
                          goto   $+2 
                          decfsz   d2, f 
                          goto   $+2 
                          decfsz   d3, f 
                          goto   Delay_0 
                          goto   $+1 
                          goto   $+1 
                          goto   $+1 
                          return 
                          
    
    send_ir               bsf GPIO, 5 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          bcf GPIO, 5 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          goto $+1 
                          decfsz d1, f 
                          goto send_ir            ; 40 KHz Burst 
                          
                          call Delay_1s           ; 1 s Pause 
                          return 
                          
    
    main                  bcf STATUS, RP0         ; Bank 0 
                          clrf GPIO 
                          movlw 0x07 
                          movwf CMCON             ; GP0..GP2 digital input 
                          bsf STATUS, RP0         ; Bank 1 
                          movlw B'00010111' 
                          movwf TRISIO            ; GP5 Ausgang, GP0..GP4 Eingang 
                          bcf STATUS, RP0         ; Bank 0 
                          
                          bsf GPIO, 5 
                          bcf GPIO, 5 
                          
                          bsf STATUS, RP0         ; Bank 1 
                          bcf INTCON, 7 
                          clrf INTCON 
                          bsf INTCON, 3 
                          movlw B'00010111' 
                          movwf IOC 
                          bsf INTCON, 7           ; GPIO Interrupt On Change 
                          bcf STATUS, RP0         ; Bank 0 
                          
    loop                  sleep 
                          nop 
                          goto loop 
                          
    kanal1                movlw 0x56 
                          movwf d1 
                          call send_ir            ; 8 * 255 
                          goto main 
                          
    kanal2                movlw 0x7F 
                          movwf d1 
                          call send_ir            ; 12 * 255 
                          goto main 
                          
    kanal3                movlw 0xA8 
                          movwf d1 
                          call send_ir            ; 16 * 255 
                          goto main 
                          
    kanal4                movlw 0xD1 
                          movwf d1 
                          call send_ir            ; 20 * 255 
                          goto main 
                          
                          goto main 
    
                          end

    Hier ist der Link (Seite ganz unten!)
    http://elektronik.kai-uwe-schmidt.de..._fernbedienung

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Hallo Andreas,
    wieso hast du den Verdacht, daß die Software falsch programmiert ist?!
    So eine Behauptung würde ich nicht so schnell aufstellen wenn auf der Hompage geschrieben steht, daß die Schaltung schon seit einiger Zeit beim Entwickler im Einsatz ist. Kontrollier nochmal deine Schaltung und prüfe, ob der Quarz beim Empfänger überhaupt schwingt. Hast du die PICs auch richtig gebrannt (Konfiguration)?

    Gruß,
    SIGINT

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    10.02.2008
    Ort
    Hamm
    Beiträge
    8
    Ja, der Quarz schwingt.
    Ich habes mit einen Ozil nachgemessen. Und wenn ich mit einer IR-LED über den TSOP gehe bzw. diese schnel ein-aus- schalte, dann gehen die einelnen 4-Kanäle auch an und aus.
    Ich Schaltungen sich auch richtig, da ich sie endlose mal nachgeschaut habe.

    Was hilfreich wäre, wenn du mir einen anderen einfachen brenner sagenkönntest (Den Brenner von der Website habe ich schon nachgebaut, sonst musste ich mal den Brenner 3 von www.sprut.de aufbauen) und wie ich beim PIC 12F629 die Taktgeber einstellung machnen musste.

    MFG
    Andreas

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.996
    Hallo!

    Ich habe auch den Verdacht, dass die Software fehlerhaft ist. Dass sie beim Author funktioniert, bedeutet noch nicht, dass die publiezierte Quellkoden denen beim Author eingesetzten entsprechen. Es könnte sein, dass er noch Änderungen vorgenommen hat, die nicht in Quellkoden eingetragen sind. Als ich mit PICs angefangen habe, habe ich sehr oft nichtfunktionierende Software vom Internet runtergeladen.

    Mir fällt vor allem ein, dass die PICs nicht initialisiert sind (z.B. on change interrupt beim Sender) und in der ISR der Befehl "retfie" fehlt. Am besten wäre, direkt mit dem Autor ein Kontakt aufzunehmen bzw. die Software neu schreiben, da die Fehlersuche in "fremden" Quellkoden (ohne Programmablaufdiagram) meistens länger dauert.

    MfG

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    10.02.2008
    Ort
    Hamm
    Beiträge
    8
    Das habe ich ja schon gemacht, ihn zu kontaktieren, aber ohne Erfolg.
    5 E-Mails habe ich an ihn geschickt, aber ohne Antwort.

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.996
    Es scheint also, dass wenn du dich wirklich mit PICs beschäftigen und viel eigene Projekte realisieren willst, musst du leider Assembler lernen.

    Für Einsteiger wurde in Wiki ein Artikel geschrieben, mit der Hoffnung, dass es damit leichter wird.

    https://www.roboternetz.de/wissen/in.../PIC_Assembler

    MfG

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    10.02.2008
    Ort
    Hamm
    Beiträge
    8
    Ja, das habe ich mir auch schon gedacht.
    Nur dies mal eben so zu können ist auch nicht leicht.

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.996
    Wenn das Programmieren schneller und einfacher gehen sollte, könntest du auch PICs in C bzw. BASIC programmieren. Ein Programm ins PIC brennen, kannst Du schon!

    Also viel Spass und Erfolg!

    MfG

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    10.02.2008
    Ort
    Hamm
    Beiträge
    8
    Aber könnt mir den nicht hier bei einer helfen???

    Ich habe eh noch einen PIC12F629 zu Hause und dann kann ich mit deisem mal ein Schaltung erstellen.

    MFG
    Andreas

    bitte!!!!

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    Was für eine Art Hilfe benötigst du denn?
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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