-         

Ergebnis 1 bis 3 von 3

Thema: Puls von 1ms bis 30ms messen

  1. #1

    Puls von 1ms bis 30ms messen

    Anzeige

    Hallo,
    Ich möchte mit dem Mega8 / Timer 1 eine Pulsmessung durchführen. Der Pulseingang ist an PD6 (ICP), Bei ansteigender Flanke soll der Timer1 auf null gesetzt werden und bei abfallender Flanke stoppen. Der Wert soll dann , wenn es mal funzt, ins RAM und dann weiterverarbeitet werden.
    Im Simulator läuft es nur in der Hardware nicht. Ich habe am PD6 einen Puls-Generator.Also Schalterprellen kann nicht der Fehler sein. Auch zwischen 2 Pulsen ist genug Zeit. Irgendeinen Fehler mache ich - kann mir jemand weiterhelfen?????
    Im voraus mal vielen Dank

    Hier der ( im wahrsten Sinne ) Code:

    #include <avr/io.h>
    #include <avr/interrupt.h>
    volatile uint16_t wert,wort;
    volatile uint8_t i,y=0;

    SIGNAL(SIG_INPUT_CAPTURE1)
    {
    if(i>10)
    {
    wort=ICR1;// Timer auslesen
    wert=wort;//>>8;//nur high byte
    PORTB = wort;//>>8;// Zähler ausgeben
    TCCR1B &=~(1<<ICES1);// Inter. Steigende Flanke
    i=5;// Flag zurücksetzen
    }
    else
    {
    TCNT1=0;// Zähler auf Null = Reset Timer
    TCCR1B |=(1<<ICNC1)|(1<<ICES1)|(1<<CS11)|(1<<CS10);// Inter.auf fallende Flanke
    i=15;// Flag setzen
    }

    }

    int main(void)
    {
    DDRB = 0xff;//Portb =Ausgabe
    PORTD = 0x00;
    TIMSK |= (1<<TICIE1);//Input Capture frei
    TCCR1B |= (1<<ICES1)|(1<<CS11) | (1<<CS10);
    sei();
    while(1)
    { }
    return 0;
    }

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Bist du dir sicher das du da nicht einen Pin-wuxel drinnen hast. Du schreibst PD6 (ICP), das ist aber AIN0, ICP1 ist PB0. Wenn du AIN0 verwenden willst musst du auch den AC enablen.
    Hubert

  3. #3
    Hallo Hubert,
    Danke für deine schnelle Nachricht. PIN-WUXEL - du hast recht. Ich weiß nicht wie ich nach dem Studium des Datenblattes daruf kommen konnte ICP an den PD6 anzuschließen????? Bin scheinbar langsam betriebsblind oder urlaubsreif, was weiß ich. Danke nochmal. Ich werde es am Montag umwuxeln

    Gruß Joachim

Berechtigungen

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