mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe bei PWM- Test


Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir in dem AVR-GCC-Tutorial alles über PWM durchgelesen und 
untenstehendes Programm erstellt.

Allerdings kann ich an dem PIN 19 (OC1A) keine PWM messen.
#include <avr/io.h>


int main  (void) 

{

// PWM Konfig.
TCCR1B |= (1<<CS12);  // Vorteiler = 256
TCCR1A |= (1<<WGM10) || (1<<COM1A1); //PWM 8 Bit
 
OCR1A = 128; // Obergrenze

  while (1)
  {
  
  }
}


Gruß
Michael

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst den Pin schon als Ausgang konfigurieren, sonst kommt da auch 
nix raus (zumindest nix nennenswertes)...

Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhh,
ja ich habe nachträglich noch den gesamten POR D als Ausgang definiert 
allerdings kahm gar nichts raus.

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du veroderst falsch! Statt so
TCCR1A |= (1<<WGM10) || (1<<COM1A1); //PWM 8 Bit
  sollte es wohl eher so aussehen.
TCCR1A |= (1<<WGM10) | (1<<COM1A1); //PWM 8 Bit

mfg Lötlackl

Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe das nun hinbekommen.

Wollte jetzt einen Taster, der an PD2 angeschlossen ist  zum erhöhen des 
OCR1A Wertes verwenden aber irgend was habe ich da wohl falsch gemacht.
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>

int wert=20 ;

int main  (void) 

{


DDRD  = 0b11111011;
PORTD = 0b00000100;

// PWM Konfig.
TCCR1B |= (1<<CS12);  // Vorteiler = 256
TCCR1A |= (1<<WGM10) | (1<<COM1A0)| (1<<COM1A1); //PWM 8 Bit
 
  while (1)
  {
    
   if (!(PIND & (1<<PD2)))
      {
        wert ++;
        _delay_ms(5);
  
      }

       wert=OCR1A;
     
  }
}

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wert=OCR1A;
oder eben andersrum...

Autor: Frank Lorenzen (florenzen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Justinger wrote:

> [...]
> irgend was habe ich da wohl falsch gemacht.

Ja.

[...]
> wert=OCR1A;
[...]

Du solltest auch überlegen bei deinem Taster statt auf den Zustand auf 
die Flanke zu prüfen.

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielleicht auch noch der main-Funktion einen Rückgabewert ins Nirvana 
schicken lassen, so daß der Compiler nicht rummeckert.
...
    OCR1A = wert;
  }
  return 0;
}

mfg

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lötlackl wrote:
> vielleicht auch noch der main-Funktion einen Rückgabewert ins Nirvana
> schicken lassen, so daß der Compiler nicht rummeckert.
Solange das Programm mit einer Endlosschleife endet, sollte das den 
Compiler nicht jucken. Meiner zumindest hat sich noch nie beklagt...

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muß ich mal bei Gelegenheit ausprobieren.

Autor: Michael Justinger (juston)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für eure Hilfe, nun läuft es.

Der Compiler hat nicht gemeckert.


Gruß
Michael

Autor: Lötlackl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der Compiler hat nicht gemeckert.

Huch, meiner auch nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.