Fast PWM nicht invertiert ?

OP #4632187
Hallo,

Könnte mir mal bitte jemand drüber schauen wo ich meinen Fehler 
eingebaut habe? Es soll eine yc gesteuerte nicht invertierende fast PWM 
werden. Jetzt, wenn ich sie auf den controller lade, fängt es sofort von 
0 bis ganz hell zu werden. Ohne das ich einen Taster betätige. Und 
bleibt dann hell. Auch eine taster betätigung bring keine veränderung, 
egal welcher art. Ich kann mir das noch so oft durchsehen, ich sehe 
meinen fehler nicht.

-Atmel Studio 6.2
-original AVR mk2 ISP PRogrammer
-ATMEGA8A

*
 * GccApplication12.c
 *
 * Created: 30.08.2016 12:30:27
 *  Author: Huber
 */


#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL
#include <util/delay.h>

int main(void)
{
  DDRB |= (1<<PB1);
  PORTD |= (1<<PD2) | (1<<PD3);

  //FAst PWM  nicht invertiert einstellen

  TCCR1A |= (1<<WGM10);  // PWM 8 bit
  TCCR1B |= (1<<WGM12);  //
  TCCR1B |= (1<<CS12);   // Vorteiler 256
  TCCR1A |= (1<<COM1A1); // nicht invertierender pwm modus
  OCR1A = 0;
  sei();

    while(1)
    {
    if (!(PIND&(1<<PD5))) //wenn taster 1 gedrückt ist dan...
    {
      if (OCR1A < 255) // wenn der maximalwert noch
                                         nicht erreicht ist, dann 
ledheller
      {
        OCR1A++;     // verbreite die signalbreite um eins 1
      }

      _delay_ms(15);
    }
        if (!(PIND&(1<<PD3)))
        {
      if (OCR1A > 0)
      {
        OCR1A--;

      }
      _delay_ms(15);
        }
    }
}
Kein Pullup an PD5 aktiviert (sondern an PD2) => floatender Input => 
wildes Erkennen von Tastendrücken.

Also die Zeilen
1
PORTD |= (1<<PD2) | (1<<PD3);
und
1
if (!(PIND&(1<<PD5))) //wenn taster 1 gedrückt ist dan...
richtig aufeinander abstimmen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.