-         

Ergebnis 1 bis 10 von 10

Thema: ICP benutzen ?? (länge von pulsen messen

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127

    ICP benutzen ?? (länge von pulsen messen

    Anzeige

    Hallo .. wie kann ich denn den ICP als interrupt definieren.. bzw wie funktioniert der?? liegt beim mega644 an pind.6

    als eingangssignal kommt sowas :


    jetz will ich das signal an den icp pin anlegen und die länge der pausen zwischen 2 peaks messen...

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    hmm ?? weis da keiner was ?? icp benutzen is doch zimlic<h ne standard anwendung oder ??? kann aber irgendwei nix finden... im google auch nichts was funktioniert...

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    kann aber irgendwei nix finden...
    im google auch nichts
    Du suchst auch falsch, schau mal im Dattenblatt nach Input Capture, dort steht alles nötige

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    da teht aber nicht wie ich das im Bascom benutze... nur wie das so theoretisch funktioniert..

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.897
    Schau mal ins http://www.rclineforum.de unter der Rubrik Elektronik rein.
    Soweit ich weiß haben die da sogar eine Beispielcode für Bascom drin.
    Prinzipiell weiß ich auch wie das mit dem ICP geht, ich progge aber in "C".
    Du gibst den Input Capture Interrupt und den Globalen Interrupt frei.
    Du schreibst eine Interruptroutine, die das Input Capture Register ausliest und in einer ( mehrerern ) Variable abspeichert. Gleichzeitig setzt Du ein Flag, welches einen neuen Capture Wert signalisiert.

    Dieses Flag fragst Du im Hauptprogramm ab und verarbeitest Die Werte bei gesetztem Flag.

    Man kann in der Capture Interrupt Routine auch das Sensing - steigende oder fallende Flanke für die nächste Aktion verstellen und somit 2 Werte für die Impuls, sowie Pausendauer gewinnen.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    hmm ok.. prgrammtechnisch hab ich das jetz so halbwegs gelöst.. problem is nur das mein signal nur ca 2 volt hat.. damit kann der controller nix anfangen oder ??? wie kann man das denn möglichst einfach verstärken ??

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    hmm.. irgendwie bin ich gerade leicht ueberfordert... gebe ein 5V rechtecksignal auf den icp ... (
    die gesammtlänge des signals is 20 ms und wiederholt sich dann, leicht modifiziert )programm sieht so aus:
    Code:
    $regfile = "m644def.dat"
     $regfile = "m644def.dat"
     $framesize = 32
     $swstack = 32
     $hwstack = 32
     $crystal = 20000000
     $baud = 9600
    
    Config Timer1 = Timer , Prescale = 8 , Edge = Rising
    Start Timer1
    
    Dim Kanal(9) As Word
    Dim X As Word
    Dim Y As Word
    On Capture1 Get_kanal Nosave           
    Config Pind.6 = Input                                       ' icp pin
    
                                                            
    Enable Capture1
    Enable Interrupts
    
    Y = 1
    Do
    
    For X = 1 To 8
    Print Kanal(x) ; "   " ;
    Next X
    Print Kanal(9)
    Loop
    
    
    
     Get_kanal:
    
      Push R24
      push r25
      push r26
      push r27
    
     Kanal(y) = Capture1
     Incr Y
     Timer1 = 0
      pop r27
      pop r26
      pop r25
      pop r24
      If Y = 9 Then
      Y = 1
      End If
    
    Return
     End
    wenn das signal anliegt passiert absolut gar nichts... wenn ich aber mit dem finger auf den icp fasse springt er in die interrupt routine...
    macht irgednwie keinen sinn finde ich...

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von goara
    hmm.. irgendwie bin ich gerade leicht ueberfordert... gebe ein 5V rechtecksignal auf den icp ...

    wenn das signal anliegt passiert absolut gar nichts... wenn ich aber mit dem finger auf den icp fasse springt er in die interrupt routine...
    macht irgednwie keinen sinn finde ich...

    Massebezug verkehrt oder nicht vorhanden ?
    Gruß
    Ratber

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    masse von dem signal = gnd vom uC das sollt ja wohl ok sein...

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    War nur ne Idee
    Gruß
    Ratber

Berechtigungen

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