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

Thema: Tiny 2313 wie geht 4 x PWM

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    Anzeige

    Powerstation Test
    ich habe leider keinen 2313, deshalb kann ich nur vermutungen anstellen, bzw es so erklären, wie ich denke, dass es ist (so verschieden vom a8/a32 wirds wohl nicht sein, aber testen kann ichs nicht) und deine fragen kurz und klar beantworten wohl leider auch nicht.

    soweit ich sehe ist "fast pwm" ein dauerndes hochzählen 8 bit (0-255), danach beginnt es wieder von vorn (single slope genannt). ab einem einstellbaren wert wird der pin low, während er ursprünglich high war, im "inverted mode" dagegen ist er beim zählbeginn low und wird danach ab einem bestimmten wert ("compare match") auf high gesetzt.

    die pwm frequenz bestimmt sich hier durch µC-takt und die auflösung (256), ist bei 20MHz also 78,125kHz wenn kein prescaling verwendet wird (prescaler=1).

    Phase Correct PWM Mode hat dagegen ein "dual-slope". es wird also bis 255 hochgezählt, danach wieder runter. dadurch wird die pwm frequenz halbiert, man hat aber eine höhere auflösung. beim hochzählen wird also bei einem festgelegtem wert der pin low, beim runterzählen bei diesem wert wieder high. (oder im inverted mode umgekehrt, also ursprünglich high, dann low, beim runterzählen dann wieder high.) maximale frequenz dürfte da dann bei ca 39kHz liegen.

    prescaler sollte von der funktion her klar sein, die pwm-frequenz wird dementsprechend niedriger (geteilt durch den prescale faktor).

    ok, so weit so schön, was nun aber konkret tun damit die pwms laufen? ab hier wird es recht ungewiss, wie gesagt ich habe noch keine erfahrungen mit dem 2313. ich versuch es mal mit fast-pwm..

    Code:
    ; port muss als ausgang gesetzt sein
    
    ;COM0A1 und COM0B1 gesetzt, bei fast pwm bedeutet das, dass beide dazugehörigen ports beim hochzählen irgendwann auf low gehen. (tabelle 35 und 38, seite 77ff)
    ;WGM0 und WGM1 gesetzt für fast pwm (mode 3, tabelle 40 auf seite 79)
       ldi    temp,   (1<<COM0A1)|(1<<COM0B1)|(1<<WGM0)|(1<<WGM1) 
       out  TCCR0A, temp
    
    ;prescaler auf 1 (tabelle 41 seite 81)
       ldi    temp,   (1<<CS00) 
       out    TCCR0B, temp 
    
    ;damit sollten diese beiden pwms laufen, fehlen noch werte fürs output compare match (also dem pwm wert)
    
       ldi temp,    63 ; hier 25% pwm
       out OCR0A, temp
    
       ldi temp,    31 ; hier 12,5% pwm
       out OCR0B, temp
    insofern ist das recht ähnlich zu dem code in https://www.roboternetz.de/phpBB2/viewtopic.php?t=27217, nur heisst das register hier TCCR0A/B.

    ich würde erstmal versuchen, diese beiden PWMs zu starten. ich kann nämlich nicht versprechen, dass das so stimmt.

    timer1 ist nun ein 16bit timer, zählt also bis max. 65535. wenn das nachfolgende klappt, wird er aber hier nur im 8-bit-mode betrieben.

    Code:
    ; port muss als ausgang gesetzt sein
    
    ;COM1A1 und COM1B1 gesetzt, bei fast pwm bedeutet das, dass beide dazugehörigen ports beim hochzählen irgendwann auf low gehen. (tabelle 44, seite 108)
    ;WGM10 und WGM12 gesetzt für fast pwm (mode 5, tabelle 46 auf seite 110)
       ldi    temp,   (1<<COM1A1)|(1<<COM1B1)|(1<<WGM0)|(1<<WGM1) 
       out  TCCR0A, temp
    
    ;prescaler auf 1 (tabelle 47 seite 111)
       ldi    temp,   (1<<CS10) 
       out    TCCR1B, temp 
    
    ;damit sollten diese beiden pwms laufen, fehlen noch werte fürs output compare match (also dem pwm wert)
    
       ldi temp,    127 ; hier 50% pwm
       out OCR1AL, temp
    
       ldi temp,    255 ; hier 100% pwm (quasi immer high)
       out OCR1BL, temp
    ob das nun so klappt? hm, kA, ehrlichgesagt.
    vor allem bei dem 16 bit counter bin ich nicht sicher, ob ich nicht was übersehen habe. sind halt doch verdammt viele buchstaben...

    aber sobald man quasi "nen fuss in der tür hat", erschliesst sich einem das datenblatt immer leichter. man bekommt quasi bissl nen blick dafür, was wichtig ist, und wird nicht mehr so sehr von den unmengen einstellungen und ausnahmen erschlagen.

    ich habe jetzt hier nur den fast pwm mode versucht umzusetzen. CTC, phase-correct etc. sind aber dann nur noch paar handgriffe.

    ich finde die tabellen mit den bedeutungen der bits am wichtigsten, obwohl natürlich alles gelesen und verstanden werden sollte. aber anfangs ist man (war ich) damit schon einigermassen überfordert.

    versuch es mal wie beschrieben, wenn was nicht klappt frag nochmal, vielleicht findet sich ja eine lösung. leds dranklemmen und den pwm-duty-cycle von 0-100% fahren. pins variieren je nach bauform.

    vielleicht hats ja bissl weitergeholfen?

    gruesse von der katze

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    Danke für Deinen Beitrag .. der war in jedem Fall viel hilfreicher als Dein Vorredner hier. DANKE !!!!
    Ich kann mir keine Signatur leisten - bin selbständig!

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    öhm vajk:

    Mit Bascom (zumindest bei meiner Version) ist es überhaupt nicht möglich auf alle vier PWM-Kanäle zurückzugreifen.
    Man kann aber trotzdem alles einstellen in dem die entsprechenden Werte dirkt in die Register schreibt. (zum Beispiel TCNT0 = &BMSB......LSB)
    Und das steht alles im Datenblatt. Man muss halt nur nachlesen und ausprobieren. Wenn Du erwartest das man Dir all das erklärt was im Datenblatt steht bist Du zumindest aus meiner Sicht etwas auf dem Holzweg. Eine Suche im Forum hätte Dir auch geholfen weil Du mit Deinem Problem nicht der erste bist.

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    @e-fan ... schön wenn Du auch so fit bist, das alles aus dem Datenblatt zu entnehmen und zu verstehen. Gratulliere. Und ich habe auch im Forum gesucht und auf das 4er PWM keine Antworten gefunden! Nur das Datenblatt für eine Antwort zu zitieren ist öde.

    Danke an robocat - Deine Antwort war hilfreich - Das Gute von der Katze
    Die Antworten von e-fan und Schokohoernl nicht - also für die Katze
    Sorry, das Wortspiel konnte ich mir grad nicht verkneifen.
    Ich kann mir keine Signatur leisten - bin selbständig!

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress