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

Thema: Externe Ereignisse zählen mit Timer0 = Counter...

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674

    Externe Ereignisse zählen mit Timer0 = Counter...

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Also ich will Ereignisse Zählen, die an einem Pin Anliegen (Flanken).

    [glow=red:914904f99d]Also ein Counter![/glow:914904f99d]

    Leider weiß ich nur soviel, als das ich den Timer0 als Counter deklarieren muss. Weiter nix. Ich bitte euch mir ein wenig Code zu schicken.

    MFG Moritz

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    64
    Beiträge
    159
    hi,

    nach dem deklarieren kannst du timer0 direkt auslesen, da haste dann die gezählten flanken drinne. läuft aber bei 256 über, tät ich über 'nen interrupt machen.

    dim 256_flanken as word ' der zähler
    enable interrupts
    enable timer0

    on timer0 t0_isr


    ' ab hier programm
    do
    .
    dein code
    irgendwannmal: gosub anzeige
    .
    loop

    end
    ' -------------------------------------

    sub anzeige
    256_flanken = 256_flanken * 256 ' der wird nur um 1 erhöht je überlauf
    256_flanken = 256_flanken + timer0 ' momentaner zählerstand dazu
    lcd "Counts: " ; 256 flanken ' Zähler anzeigen
    return
    end sub anzeige
    ' -----------------------------------

    to_isr
    incr 256_flanken
    return
    ' -----------------------------------

    ist saugrob, ich weiss, aber so geht's mal
    - wenn kein fatal error drinne is
    gruss, harry

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Danke ich werds mal ausprobieren, allerdings immernoch meine Frage. An welchen Pins zähle ich den jetzt?

    UNd was bedeutet 'incr'? heißt das sowas wie 256_flanken++ (also +1)

    MFG moritz

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    64
    Beiträge
    159
    genau das bedeutet es. x++ kenn ich nur von c, geht das unter Bascom auch? gezählt wird der t0-pin.
    gruss, harry

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Sorry, aber ich habs immer noch net gerafft.
    t0-pin?
    Aber welcher ist das? Ist der vorbestimmt, oder kann man den wählen, wenn ja, wie gebe ich ihn an?
    Ich benutze einen 90S2313, nur so zur Info.

    MFg moritz

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.09.2004
    Ort
    Heilbronn
    Alter
    41
    Beiträge
    153
    Also wenn ich ehrlich bin hab ich die Version von HarryUp auch net ganz kapiert. Ich arbeite zwar mit nem andern Controller müsst aber auch bei dir gehen:
    Ich hätte den externen Takt- Eingang des Timers (soweit bei deinem uC vorhanden) mißbraucht, indem du an ihn die Leitung anlegst von der die Flanken gezählt werden sollen. Dann zählt er bei jeder Flanke eins weiter. Müsstest natürlich noch einen eventuellen Overflow abfangen (ich weis ja net in welchen Bereichen zu zählen willst).

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also der Bereich ist nicht so hoch, aber nach dem Code oben klappt das ja auch, oder (also der Overflow).
    welcher ist denn der Takt-Eingang?
    Ich schätze Harry meinte mit t0-Pin den Eingang für Timer 0, aber welcher ist das? Hab nen AT90S2313, oder kann man den beliebig ändern?

    MFG Moritz

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Damit habe ich meine Frage selbst beantwortet:

    (muss ich den T0 oder Int0 benutzen)
    bzw. für welche Anwendungen benutze ich die INT- und für welche T-Ausgänge?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken inti.gif  

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also der Code lieferte ungefähr 9 Fehlermeldungen! Ich geb mich mal ran.

    Fertig! Soviel wars garnicht.
    Hier ein netter Code:

    Code:
    Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portb.0 , Db6 = Portb.1 , Db7 = Portb.2 , E = Portb.3 , Rs = Portb.4       ' Natürlich so wie es wirklich angeschlossen ist (4-Bit-Modus)
    Config Lcd = 16 * 2
    Initlcd
    Display On
    Cursor Off
    Config Timer0 = Counter , Edge = Rising
    Dim 256_flanken As Word                                     ' der zähler
    Declare Sub Anzeige
    Enable Timer0
    Enable Interrupts
    On Timer0 T_isr
    
    ' -----------------------------------
    
    Cls
    Do
    Home
    Lcd "Cnt.= " ; Timer0 ; "  "
    Lowerline
    Lcd "Overflow = " ; 256_flanken ; "  "
    Waitms 100
    Loop
    
    ' -----------------------------------
    
    T_isr:
    incr 256_flanken
    Return
    
    ' -----------------------------------
    Danke für die Hilfe

    MFG Moritz

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Der Counter läuft, aber jetzt hab ich ein Problem mit der Entprellung Einer 'Mauswelle?':

    https://www.roboternetz.de/phpBB2/vi...?p=35456#35456

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test