- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Bitte um Hilfe bei for-Schleife

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.683
    was für ein verwendeter Controller exakt? ..
    Au weh, tut mir leid. Es ist ein nano328p/TQFP AU 1511 (ATmega328-P_Atmel-42735A_Datasheet_Complete-06-2016) verbaut, den originalen 16MHz-Resonator hatte ich durch einen baugleichen 20 MHz-Typ ersetzt.

    .. Warum Phase Correct Mode bzw. welche TOP Wert ist konfiguriert? ..
    Das ist ein selbsterstelltes Programm (Studentenübung), das mir zur Fehlersuche vorgelegt wurde. TOP ist OCRA, siehe Datenblatt, Seite 205, waveform Mode 5.

    .. Meine Vermutung, er zählt mit 16Bit = 65535 und 200/65535 = 0.3% ..
    Es ist Timer2, bei den megas immer? 8bittig; der 16bittige Timer ist immer? Timer1.

    .. wait wait wait .... warum schaltest du den interrupt ein? Hast du denn auch eine Interrupt Routine? Sonst schmiert er dabei immer ab!
    Das wait soll die isochrone Phase der PWM dimensionieren - ohne zweiten Timer. Wie erwähnt, ein Anfängerversuch.

    Zitat Zitat von Ceos Beitrag anzeigen
    .. Hast du denn auch eine Interrupt Routine? Sonst schmiert er dabei immer ab!
    Nein, der Interrupt wurde im vorgelegten Programm nicht mal in der Timerinitialisierung erlaubt/freigegeben. Ich bin selbst überrascht, dass weder die Interruptlibrary #include <avr/interrupt.h> benutzt werden muss, noch muss der Interrupt global freigegeben werden, nur lokal in der Timerinitialisierung. Bei global freigegebenem Interrupt muss notwendigerweise zusätzlich noch die ISR ISR (TIMER2_COMPA_vect) erstellt sein, wenn auch nur als leere Funktion. (Ja ja, das klingt auch bei mir nach experimentellem Software-Engineering, aber mein C ist ja noch sehr rudimentär).
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    "wait wait wait" war nur ein ausruf, keine Frage XD

    das Flag für den Interrupt ist Teil eines Registers, beschrieben in der IO.h du musst interrupt.h nicht zwingend laden für das Flag ... Wenn du keine ISR angelegt hast, springt er an die Vektroadresse, bekommt eine schöne 0xf slide serviert und landet irgendwo, nur nicht da wo er hingehört!

    Daher als Grundregel, niemals einen Interrupt zu aktiviern bevor man nicht doppel/dreifach gecheckt hat dass man den (RICHTIGEN) Vektor auch implementiert hat ... udn wenn nur ein gammeliges NOP() drin steht

    Was die Timer angeht .. ich hab zu viele Controllerdatenblätter gelesen als dass ich 100% sicher sein könnte welcher Timer wie tickt ohne gezielt nachzuschlagen XD

    Zum Thema: dein programmierter Modus ist Phase Correct mit OCRA2 als TOP Register (WGM22|20) und compare up active (COM1|0) bei Output A ... das wiederspricht sich ... wenn du dein OCR2A in der Schleife updatest, veränderst du die Frequenz, denn dein TOP WErt entspricht immer OCR2A! Du müsstest schon OCR2B und den entsprechenden Pin benutzen damit das klappen kann XD

    ist mir aber auch erst klar geworden als ich die WGM Tabelle vor mir hatte

    und dennoch wäre ich dafür ein normales Fast PWM mit festem TOP von 0xFF zu benutzen, weil man dann eben nicht diese Problem hat
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.683
    .. Du müsstest schon OCR2B und den entsprechenden Pin benutzen damit das klappen kann XD
    ist mir aber auch erst klar geworden als ich die WGM Tabelle vor mir hatte
    und dennoch wäre ich dafür ein normales Fast PWM mit festem TOP von 0xFF zu benutzen, weil man dann eben nicht diese Problem hat
    Jaaa, danke. Das war mir nicht klar/bewusst geworden. Aber es stimmt. Prima.
    Ja, ich nehme eigentlich nur CTC oder fast PWM. Die phase correct PWM war mir irgendwie zu meiner Atmel-Anfangszeit undurchsichtig vorgekommen, hatte ich nie benutzt/benötigt. Das ursprüngliche Programm ist, wie gesagt, das Oevre eines (andern) Anfängers.

    Danke, jetzt läufts wirklich und vorstellungsgemäß.
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. --Wie fang ich an, bitte hilfe--
    Von Sp666dy im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 22.03.2008, 15:42
  2. Bitte um hilfe mit Eagle
    Von The Puma im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 5
    Letzter Beitrag: 09.06.2006, 19:35
  3. ich bin völlig neu und bitte um hilfe !!!
    Von cybernet2001 im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 12
    Letzter Beitrag: 01.05.2005, 01:59
  4. Maussensor : Hilfe bitte!
    Von Mausjäger im Forum Sensoren / Sensorik
    Antworten: 23
    Letzter Beitrag: 11.02.2005, 00:08
  5. Bitte um Hilfe
    Von Xeus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 30.12.2004, 17:08

Stichworte

Berechtigungen

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

Labornetzteil AliExpress