led faden

algemene C code
Berichten: 42
Geregistreerd: 19 Mei 2016, 23:24

led faden

Berichtdoor toku » 27 Feb 2021, 16:07

Hey mensen ik probeer met een atmega328p chip een ledje te faden. maar als ik de code upload knippert het ledje steeds iet sneller tot die op 100% zit en begint dan op nieuw.
iemand enig idee hoe dit kan?
mijn code:
Code: Alles selecteren
 /*
 * ATMEGA_PWM.c
 *
 * Created: 25/02/2021 23:02:45
 * Author : tom
 */
#define F_CPU 16000000UL

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

double dutyCycle = 0;

int main(void)
{
   DDRD = (1 << PORTD6);
   
   TCCR0A = (1 << COM0A1) | (1 << WGM00) | (1 << WGM01);
   TIMSK0 = (1 << TOIE0);
   
   OCR0A = (dutyCycle/100.0)*255.0;
   
   sei();
   
   TCCR0B = (1 << CS00) | (1 << CS02);
   
   while(1)
   {
      //TODO:: Please write your application code
      _delay_ms(100);
      
      dutyCycle += 10;
      
      if(dutyCycle > 100)
      {
         dutyCycle = 0;
      }
   }
}

ISR(TIMER0_OVF_vect)
{
   OCR0A = (dutyCycle/100.0)*255;
}


het circuit:

https://ibb.co/cXpsJ9K

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: led faden

Berichtdoor shooter » 27 Feb 2021, 20:40

jij zet dutycycle op double maar je rekent met float (100.0) als je de werkelijke hebt zet deze dan naar double (dutycycle), verder doe je iets fout met de timer, want dat geknipper moet veel sneller zijn.
paul deelen
shooter@home.nl

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten