- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Ich brauche einen Tip für Bascom

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anzeige

    Powerstation Test
    @Netzman Der Timer läuft mit Prescaler 64, also kommt die Timer ISR nur ca. alle 2000 Takte, also kein Problem.

    @Rone Man kann auch mit F8 einen Interrupt auslösen, zumindest einen Timer Interrupt. Während er durch das Programm steppt, zählt der Timer hoch und bei Überlauf wird die ISR ausgeführt.

    @Halodri F8 steppt durch die Bascom Befehle. Deren Abarbeitung kann natürlich ziemlich viele Takte Ausführungszeit benötigen. Locker über 1000. Ist aber in deinem Programm nichts drin, was mehr als 50 Takte dauert.
    Wenn du das Ganze aber wirklich mit Prescale 1 ausführst, dann bekommst du in der Timer ISR tatsächlich ein Problem.
    Timer1 = Timervorgabe
    setzt den Timer auf Preload 65500. Jetzt kommen noch ein paar andere Befehle. Dann das Return. Der Rücksprung dauert 57 Takte. Während der ISR sind Interrupts global abgeschaltet, d.h. dass während dieser Takte nicht überprüft wird, ob der Timer überläuft. Wenn die Interrupts dann wieder eingeschaltet sind, ist der Timer schon übergelaufen und macht nun bei ganz niedrigen Werten (ca. 50) weiter.
    Dies wird aber alles nicht passieren, wenn du mit Prescale 64 arbeitest.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    01.12.2010
    Beiträge
    10
    Hallo Leute!

    Also irgendwie komme ich nicht weiter.

    Ich habe jetzt die Werte für Timervorgabe auf 49911 gesetzt dann sollte pro Sekunde ein ISR aufgerufen werden.

    Aber dieser Zähler erhöht sich nicht. Ich bin mir fast sicher das die ISR garnicht aufgerufen wird. Da in der ersten Zeile ja steht
    Timer1= Timervorgabe
    Der Timer1 aber bei Überlauf wieder bei 0 anfängt zu zählen statt wie angegeben bei 49911...

    Wie verhält sich das Prog denn bei Euch wenn Ihr es in Bascom einfügt und den Simulator startet. Zählt die Variable Zähler dann hoch oder nicht? Wo macht der Timer1 nach dem Überlauf weiter? Bei 0 oder bei 49911?


    Danke für Euro Hilfe

    Grüße aus dem Süden

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo!

    Funktioniert hier bei mir.

    Musst nur Deinen Eingangstaster auf 1 setzen, sonst wird Dummy nicht
    gesetzt. Wenn Dummy nicht gesetzt wird, wird auch der Zähler nicht erhöht.

    @for_ro:

    Wieder was dazugelernt, aber ich probier auch nicht soviel mit dem Sim.
    Übrigens: Das Programm funktioniert auch im Simulator ohne die
    "$sim"-Anweisung. Dachte bisher die muss sein.

    MfG
    Rone

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Nochwas zum lernen *g*:
    Die $sim-Anweisung hat als einzigen Effekt, dass Warteschleifen rausgeworfen werden. So muss man z.B. bei einer LCD-Initialisierung nicht diese (im Simulator ewig dauernden) Delays abwarten muss. Da hier ja keine Hardware dranhängt, die sich beschweren könnte, können diese Delays in der Simulation also ausgeschlossen werden.

    Nachtrag: Man kann auch ein mit $sim kompiliertes Programm auf den AVR werfen. Nur wird sich der halt u.U. seltsam verhalten.
    #ifndef MfG
    #define MfG

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests