Suchergebnisse

Suchergebnisse 1-20 von insgesamt 152.

  • Anfangsschwierigkeiten mit einem xmega

    hero - - AVR XMEGA

    Beitrag

    Naja, das ist bei den alten AVRs genau so. Das Bit ist normalerweise 0, tritt ein INT auf, wird es von der HW auf 1 gesetzt. Das kannst du auch abfragen. Nun kommt das einzig seltsame bei allen AVRs: Schreibst du eine 1 in das Bit wird es zurückgesetzt.

  • Anfangsschwierigkeiten mit einem xmega

    hero - - AVR XMEGA

    Beitrag

    Hallo tschoeatsch, Warum meinst, dass die Logik verdreht ist? Ich kenne mich mit den XMegas auch nicht aus aber was ich lese ist doch so wie bei den Megas. Meiner Minuten nach ist nur die Konfiguration bei den Xs aufwendiger. Aber das hatte ich wegen der erweiterten Möglichkeiten auch erwartet.

  • @Dekaman Mir ging es darum zu zeigen, wie man die PWM Werte in exakt gleichen Zeiten durchläuft. Dazu wird der Overflow Interrupt benutzt, der automatisch synchron mit der PWM ist. Wenn der Timer2 des M8 das unterstützen würde, könnte man den Top ändern und dann nicht mehr 510 Takte für die PWM Periode brauchen sondern vielleicht 114 oder 276. Damit lassen sich dann relativ frei Frequenzen erzeugen. Bei einigen KHz ist aber Schluss.

  • @businski, das hat nichts mit der Anzahl Werte sondern dem Lauf des Timers zu tun. Bei einer normalen PWM läuft der Timer von 0-255 und wieder zurück. Alle Werte tauchen dabei doppelt auf, wären also 512. Nur die 0 und die 255 nimmt der Timer nur für einen Takt an. Also ist eine Periode der PWM 510 Takte lang. Ob du jetzt 1 oder 1000 Werte der PWM zuweist, ist vollkommen egal. Bei deinem Clear_up wird zwischen 0 und dem Compare-Wert der Ausgang high, ab da bis 255 und wieder runter zum Compare L…

  • Hallo businski, die Kommentare in deinem Programm passen aber nicht zu der Funktion. Dein Compare wir 25,000 mal pro Sekunde aufgerufen (8MHz/8/39+1). Also wird alle 320 Takte ein neuer PWM2 Wert geholt. Die PWM2 läuft aber mit 2KHz (8MHz/8/510), also wird nur jeder 12.Wert tatsächlich in der PWM verarbeitet. Da kommt wahrscheinlich trotzdem ein Sinus raus, aber mit wesentlich weniger Stützpunkten.

  • Hallo >Jürgen, da die Timer bein ATtiny45 nur 8-bit haben, brauchst und darfst du das pwm=08 nicht angeben.

  • Int1 Software UART

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Hallo Fredred, Dete benutzt doch Input zum Einlesen und da er das nicht anders konfiguriert hat, wartet Input auf das CR (13). Dieses wird nicht in der Variable gespeichert, auch nicht, wenn du nur Enter drückst. Solange Input also auf CR reagiert, wird dieses Zeichen nicht im String abgespeichert. Ich würde auch nicht sagen, dass das Com-Protokoll LF und CR schickt, sondern die Anwendung, die das Protokoll benutzt. Windows macht nun mal aus einem Enter ein CR-LF, Unix nur LF und Apple nur CR. P…

  • Zitat von tschoeatsch: „Bei der pwm-Periode musst du noch durch die Auflösung teilen, bei timer0 mit 8bit Pwmperiode=systemtakt/prescale/256. “ Die 256 gelten ja nur, wenn du eine PWM mit $hFF als Top Wert nimmst. Der 8-bit Timer des Tiny bietet aber auch FastPWM eine PWM mit einem variablen Top Wert an (OCR0A). Damit wird dann nicht durch 256 sondern durch OCR0A geteilt. Damit ändert sich aber auch die Auflösung von 256 auf OCR0A Schritte. Und da bist du dann bei einem 16-bit Timer wesentlich f…

  • Problem mit Taster

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Aus einer Schleife schon. Tschoeatsch geht es aber darum, dass eine Sub niemals mit einem Goto verlassen werden darf. Und da gibt es für mich überhaupt keine Ausnahme.

  • Zitat von Dekaman: „Zitat von Dekaman: „PWM ist warscheinlich nicht das Optimum zur Erzeugung durchstimmbarer Sinusfrequenzen. “ Und davon bin ich nach jetzigem Wissensstand überzeugt.Denn wenn ich was reproduzierbares haben will, muss ich versuchen, meine Frequenz irgendwie mit der PWM zu "synchronisieren". Das heißt aber, das ich nur Frequenzen erzeugen kann, die in einem bestimmten Verhältnis zum Systemtakt und Prescaler stehen. Ich werde jetzt mal versuchen, mich mit R-2R- Netzwerk auseinand…

  • Hallo Detlef, mit dem Tiny13 kannst du die PWM für eine feste Frequenz des Sinus wohl erzeugen. Wenn die Frequenz aber variabel sein soll, dann wird es schwierig. Das funktioniert mit einem 16-bit Timer halt einfacher, weil du da einen relativ großen Bereich der PWM Frequenz zur Verfügung hast. Bei einem 8-bit Timer kannst du die Frequenz, außer über den Prescale, ja nur in einem kleinen Bereich variieren. Denn mit kleineren OCR0A Werten wird dann die Auflösung kleiner, sodass OCR0A unter 50 kna…

  • Zitat von Dekaman: „...Was ich gefunden habe: Auf Seite 73 , Tabelle 11-8 sind die verschiedenen Modi der PWM gelistet. Da gibt es WGM00, WGM01 und WGM02. Wenn ich das jetzt richtig interpretiere,sind WGM00 und WGM01 die Bits 0 und 1 des Registers TCCR0A , und WGM02 ist Bit 3 von TCCR0B. Um jetzt einen bestimmten PWM Modus zu programmieren, muss ich also die se Bits manipulieren. ? Bevor ich den Timer als PWM confiruriere, oder nachher ?? Modus 1 und 5 sind Phase correct PWM . Beide unterscheide…

  • Int1 Software UART

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Zitat von Dete: „Quellcode (11 Zeilen)“ Zitat von Dete: „Was mich halt verwundert ist Tatsache das ich am Anfang bei der Software UART den ersten Wert immer zweimal schicken muss und danach reicht einmal wie erwartet. “ Hallo Dete, nach dem Connect wertest du das erste Zeichen doch gar nicht aus, sondern gehst direkt in die While-Schleife und wartest dort auf das nächste Zeichen. Dann wird alles bis zur ersten 0 ausgegeben, bevor die Schleife verlassen wird.

  • Bei Word Typen dauert dies READ M OCR1A = M 75 Takte, und dies OCR1A = Intervall(J) nur ganze 17 Takte. Dabei musst du natürlich vorher bei Frequenzwechsel die 16 Werte in das Array schreiben, wobei das dann ja nicht zeitkritisch ist. Dabei würde ich dann mit Lookup arbeiten, weil du den Index dann einfach über alle Frequenzen berechnen kannst. For I = 0 To 14 Index = Frequenznr * 15 + I Intervall(I+1) = Lookup(Index,Sinusdata) 'Loopup ist 0-basiert, Intervall() dann 1-basiert Next I Frequenznr …

  • RC5 Problem

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    @Michael GETRC5 gibt ja immer einen Wert zurück. Wenn keine Taste gedrückt ist, sind beide meine ich auf 255. Damit sollte die Bedingung beim Loslassen nicht erfüllt sein, also Reset des Pins. @manni Bist du dir sicher, dass du das richtig übernommen hast? Während die Taste gedrückt wird, wird bei mir ja nicht getoggelt, also kann die LED eigentlich auch nicht blinken. Warum hast du eigentlich das zweite Config RC5 in der Mainloop? @ftelektro Dazu müsste dann weiterhin Adresse=20 sein, damit der…

  • RC5 Problem

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Hallo manni, schreib es doch einfach so: If Address = 20 and Command = 16 Then set Portb.3 else reset Portb.3

  • Hallo Thalamit, Ich verstehe nicht den Sinn der While-Schleife. Die läuft Time-ctrl mal durch und überprüft dabei, ob in der Zwischenzeit ein Compate Match aufgetreten ist. Wenn ja, wird das Flag gelöscht. Wozu? Ein richtiges Problem bekommst du beim Ändern des OCR1A Registers. Dies wird beim CTC Modus nicht gepudert. Wenn der Timer dann z.B. Schon bis auf 100 gezählt hat und du das Register auf einen kleineren Wert setzt, dann läuft der Timer bis zum Top Wert hoch.

  • ATtiny44 TIMER0

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Hallo Franz, zeig doch mal das ganze Programm, dann kann man das mal im Simulator ausprobieren. Vielleicht liegt der Fehler ja ganz woanders.

  • Pin Change Interrupt unknown

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Anstelle von Pcicr.pcie2 = 1 kannst du auch Enable PCINT2 schreiben. Beim Maskenregister gibt es keine andere Schreibweise.

  • Pin Change Interrupt unknown

    hero - - Hauptforum BASCOM-AVR

    Beitrag

    Hallo Norbert, Pcifr.pcif2 ist das Bit welches anzeigt, dass der PCInt2 eingetreten ist. Daher ist das natürlich bekannt, hat aber nichts mit der Vereinbarung der ISR zu tun.