Fast PWM nicht invertiert ?

OP #4632187
Lesenswert?
• ▲
▼
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);
        }
    }
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren