- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Bascom's "waitms" in C?

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.05.2004
    Ort
    N Stück rechts von Hamburg
    Alter
    35
    Beiträge
    166
    Anzeige

    E-Bike
    wenn ich die interrupts ausmache, wie merk ich dann wenn der timer abläuft? da muss ich ihn ja doch in ner schleife abfragen. und wenn eh ne schleife nötig ist kann ich mir den timer sparen...
    mfG

    cht

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.09.2004
    Beiträge
    471
    Ich habe mich mit meinem obigen Beitrag darauf bezogen:

    Zitat Zitat von snowgras
    mit den zählschleifen hast du das problem dass wenn inzwischen viele interruptrequests kommen/der controler sonst wie ausgelastet is, das einfach viel länger dauert als gedacht.
    damit diese Zählschleifen nicht durch interrupts unterbrochen werden, sollte man in der Zeit wo die Zählschleife läuft die Interrupts deaktivieren.

    Wenn ich die Interrupts deaktiviere hat es absolut keinen Sinn einen Timer zu verwenden, da sich dieser ja dann nicht mehr meldet bis ich die Interrupts wieder aktiviert habe.

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.05.2004
    Ort
    Hannover
    Beiträge
    414
    Wie kann man das ganze denn mit einem Timer lösen ... ich habe das ganze Timerkrams irgendwie noch nicht verstanden ... und ich hab es mir jetzt schon zum 3. mal durchgelesen ... wenn ich nen 8 bit Timer setze läuft dieser bis 255 durch und fängt dann wieder von 0 an wenn ich jetzt aber 1 sec warten und das mit einem timer lösen möchte wird das bis 255 zählen jedoch nicht ausreichen oder seh ich das falsch? Kann mal wer ein Beispiel Posten in dem 1 Led leuchtet dann 1 Sec gewartet wird und dann eine andere Led leuchtet ...

    #include <avr/io.h>
    #include <inttypes.h>

    typedef unsigned char BYTE;
    typedef unsigned short WORD;

    int main(void)
    {
    DDRA=0xff
    DDRB=0xff

    PORTA=0x1

    hier der kram mit dem timer

    PORTA=0x0
    PORTB=0x1
    }

  4. #14
    Wenn ich es richtig gelesen habe, dann wissen wir noch nicht um welchen Controller es sich handelt. Ich gehe hier mal vom ARV aus.

    Ich würde eigentlich jedem raten - insbesondere am Anfang - nicht immer alles selbst zu machen, sondern eine fertige Library zu nehmen. Da muss man für solche sachen dann nur noch das richtige Headerfile einbinden, das richtige Object file linken und schon kann man einfach " timerPause(1200)" in sein Programm einfügen - und schwups hat man eine timergesteuerte 1,2 Sek Pause.

    Code:
    .....
    #include <timer.>
    .....
    main()
    {
      
       .......
      timerPause(1200);
     .......
    }
    Ich habe aus der Library, die ich verwende, auch eine Menge über den AVR gelernt. Man kann ja reinschauen und als Beispiel sehen wie der Libraryersteller das Problem gelöst hat. Und Dinge wie - PortI/O, Interrupt gesteuerte RS232 I/O, Software RS232, I2C, AD Wandlung. LCD Anschluss .... sind schon tausendmal Erfunden . Da muss ja nicht jeder das Rad neu erfinden

    Es it immer schwierig eine spezielle Lib vorzuschlagen. Ich habe einige Ausprobiert.
    Das muss einfach jeder selbst entscheiden welche er mag und welche ihm nicht liegt
    Ich selbst nehme die AVRLIB von Pascal Stang
    http://hubbard.engr.scu.edu/embedded/avr/avrlib/
    ( Keine Werbung, ich habe nix mit Ihm zu tun.)


    Gruss
    Frank

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress