www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM ATTiny 2313 RGB LED _GCC


Autor: Ben Hil (bendoben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

Ich versuche seit kurzem eine led zu dimmen, jedoch dies gelingt nicht. 
Vielleicht habt ihr eine Lösung. Hier mein Code ;)

lg Ben
#include <avr/io.h>
#include <util/delay.h>

int main()
{
  

  TCCR1A = (0<<WGM11) | (1<<WGM10) | (1<<COM1A1);
  TCCR1B = (1<<CS12) | (1<<CS10);
  ICR1 = 0x6FFF;
  OCR1A = 0x2FFF;
 
  while( 1 ) 
  {
  PORTB ^= ( 1 << PB3 );  
    _delay_ms(1000); 
  PORTB ^= ( 0 << PB3 ); 
    _delay_ms(1000);
  }
  return 0;
}


Autor: Stefan Hennig (stefanhennig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ben Hil schrieb:
> PORTB ^= ( 0 << PB3 );

Diese Zeile tut nix.
Du führt eine Exclusiv-Oder Verknüpfung mit 0 aus.

Autor: Ben Hil (bendoben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay aber wie aktiviere ich nun den Timer, sodass die LED an Port B3 
langsam ein geht und aus geht?

#include <avr/io.h>
#include <util/delay.h>

int main()
{
  

  TCCR1A = (0<<WGM11) | (1<<WGM10) | (1<<COM1A1);
  TCCR1B = (1<<CS12) | (1<<CS10);
  ICR1 = 0x6FFF;
  OCR1A = 0x2FFF;
 
  while( 1 ) 
  {
    ????
  }
  return 0;
}

Autor: Web-Applikator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISR(TIMER0_OVF_vect) {
  static uint8_t tick;

  if (tick < red_pwm)
    PORTB |= _BV(LED_RED);
  else
    PORTB &=~_BV(LED_RED);

  if (tick < green_pwm)
    PORTB |= _BV(LED_GREEN);
  else
    PORTB &=~_BV(LED_GREEN);

  if (tick < blue_pwm)
    PORTB |= _BV(LED_BLUE);
  else
    PORTB &=~_BV(LED_BLUE);


  tick++;
}

in main z.B.:

 TCCR0A = 0;
 TCCR0B = _BV(CS00); // F_OSC Timer Freq
 TIMSK = _BV(TOIE0);
  sei();


Alles hier aus der Codesammlung geklaut ;)

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.