- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 15

Thema: Ewiges Thema Timer und PWM

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    da es nicht die einzige ISR sein wird die du später verwendest, würde ich dir noch empfehlen innerhalb der ISR das globale Itnerrupt Flag zu lsöchen und am ende wieder einzuschalten um glitches zu vermeiden wenn ein interrupt im interrupt feuert (sofern das beim pic18 möglich ist, ich kenn den chip leider nicht)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.10.2017
    Beiträge
    11
    Ah jetzt verstehe ich wozu der dienen soll , ja sowas gibt es beim PIC18! Wenn ich das globale Interrupt Flag in der ISR disable kann ich also sicher gehen, dass dieser Interrupt bis zum Ende abgearbeitet wird ohne durch einen anderen Interrupt unterbrochen zu werden.

    Ich finde hier leider keinen Like Button o.Ä. sonst hätte ich den schon mehrmals gedrückt!

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    also bei atmegas weis ich es 100%ig, dass innerhalb der ISR das I-Flag automatisch gelöscht wird, bei XMegas wird nur das Prioritäts I-Flag gelöscht damit kein Interrupt gleicher oder niedrigerer Prio ausgeführt werden kann, ob udn wie das bei PIc ist kann cih nciht sagen einfach im kapitel interrupts nachschauen ob es automatisch das i-flag beim betreten der ISR sperrt oder nicht

    generell PWM auf diese art zu machen würde ich aber vermeiden, ich würde wohl eher hingehen den timer mit dem PRx register vorladen und downcounten lassen bis 0 und dann im ISR die bits bedienen, während der timer sich automatisch auf den im PRx Register gesetzten wert zurücksetzt und dann wieder munter runterzählt bis 0, so hast du einen 100%ig exakt feuernden interrupt und maximal einen statischen offset aber immer gleiche frequenz
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.10.2017
    Beiträge
    11
    Zitat Zitat von Ceos Beitrag anzeigen
    also bei atmegas weis ich es 100%ig, dass innerhalb der ISR das I-Flag automatisch gelöscht wird, bei XMegas wird nur das Prioritäts I-Flag gelöscht damit kein Interrupt gleicher oder niedrigerer Prio ausgeführt werden kann, ob udn wie das bei PIc ist kann cih nciht sagen einfach im kapitel interrupts nachschauen ob es automatisch das i-flag beim betreten der ISR sperrt oder nicht
    Habe mir das jetzt mal genauer angeguckt, beim PIC wird automatisch ein Flag gelöscht und nach dem Ende der ISR wieder das Flag gesetzt damit der Interrupt nicht unterbrochen werden kann. Allerdings kann ab den PIC18 Typen ein mit einem höher priorisierten Interrupt einen niedrig priorisierten Interrupt unterbrechen. Der höher priorisierte Interrupt wird abegarbeitet, anschliessend zurück zum niedrig priorisierten Interrupt gesprungen, die Routine fertig bearbeitet bevor es wieder zurück ins Hauptprogramm geht. Wohlgemerkt ich programmiere alles in C.

    Zusätzlich gibt es eine Otion "Fast" die verhindert, dass bei einem Interrupt der Stack gesichert und zurückgeschrieben wird. Wenn ich diese nutze erhöht sich meine Frequenz von 33 kHz zu 45 kHz.
    Bestätigt nochmals die Annahme, dass die Abweichung zu den berechneten 50 kHz unter anderem daher rührt. Diese Option sollte man wohl nur nutzen wenn man genau weiss man tut

    - - - Aktualisiert - - -

    Zitat Zitat von oberallgeier Beitrag anzeigen
    Hallo PICman - sorry, GeoMan.

    Ich kenn mich mit den PICs nicht aus, ich programmiere Atmels in C. Aber vielleicht gibts bei PIC ähnliche Dinge. Ich bekomme z.B. mit dem Compilat noch ne so genannte LLS-Datei. In der ist eine Art Assemblerlisting mit Maschinencode, dazwischen eingefügtem C-Code und mit mancherlei organisatorischen Daten zum Compilat enthalten. Als Beispiel mal eine vollständige ISR zum USART-Empfang

    ...
    ..
    .

    Man kann bei den Atmels in einer ISR das Interruptbit explizit auf "erlaube Interrupts" setzen. Ich habe hin und wieder zwar nested interrupts in meinen Quellen - aber die sind schon ein heisses Eisen.
    Hallo oberallgeier

    Ich beschäftige mich noch nicht all zu lange mit µC aber habe schon mitbekommen, dass es da verschiedene Typen gibt und der PIC wohl nicht mehr so angesagt ist, wie zu den Zeiten als der PIC18F Typ erschienen ist
    Es gibt beim PIC etwas vergeichbares, nennt sich .LST File.

    Um rein zu kommen finde ich ist C schon sehr gut und einfacher als direkt mit Assembler loszulegen, daher kann ich deinen Ausführugnen - !noch! - nicht ganz folgen. Das werde ich aber wohl machen müssen wenn man ich ein tieferes Verständnis erhalten möchte bzw. um Probleme besser verstehen/ lösen zu können.

    So weit bin ich -noch- nicht

    Viel zu lernen ich noch hab
    Geändert von GeoMan (15.11.2017 um 11:32 Uhr)

Ähnliche Themen

  1. Ewiges Leben: Hybrider Lohner-Porsche „Semper Vivus“
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 19.03.2011, 18:00
  2. C167 Drehzahlberechnung mit Timer 3 od. Timer 3 & 4?
    Von cieks0301 im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 13.03.2009, 10:37
  3. fragen zum thema HF
    Von Che Guevara im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 06.01.2008, 03:01
  4. PWM mit Timer 0 und 2 geht, aber nicht mit Timer 1 (mega64)
    Von popi im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 14.06.2006, 16:00
  5. [ERLEDIGT] thema spannungsverdoppler
    Von im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 05.12.2004, 14:40

Berechtigungen

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

LiFePO4 Speicher Test