DEADBEEF
12.10.2014, 22:24
Hallo
Ich hoffe ich bin hier richtig! Ich habe versucht ein variables PWM Signal auf dem Atmega328pu zu erzeugen ( und es hat geklappt). Da ich nun aber ein LCD und weitere Sensoren anschließen wollte, habe ich dem µC gewechselt(Atmega32). Leider geht da jetzt Garnichts mehr...
Ich hoffe mir kann jemand helfen und wünsche eine schöne Wochen !
MfG
DEADBEEF
Anbei noch mein Code:
#define F_CPU 8000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
double dutyCycle = 0;
int main(void)
{
DDRB = 0xFF;
TCCR0 |= (1<< WGM00) | (1<<WGM01) | (1<<COM01);
OCR0 = (dutyCycle/100.0)*255.0;
TCNT0 = 0xFF;
TIMSK |= (1<< TOIE0);
TIFR = (1<< TOV0);
sei();
TCCR0 |= (1<< CS00);
while(1)
{
//TODO:: Please write your application code
_delay_ms(100);
dutyCycle += 10;
if(dutyCycle > 50)
{
dutyCycle = 0;
}
}
}
ISR(TIMER0_OVF_vect)
{
OCR0 = (dutyCycle/100.0)*255.0;
}
Ich hoffe ich bin hier richtig! Ich habe versucht ein variables PWM Signal auf dem Atmega328pu zu erzeugen ( und es hat geklappt). Da ich nun aber ein LCD und weitere Sensoren anschließen wollte, habe ich dem µC gewechselt(Atmega32). Leider geht da jetzt Garnichts mehr...
Ich hoffe mir kann jemand helfen und wünsche eine schöne Wochen !
MfG
DEADBEEF
Anbei noch mein Code:
#define F_CPU 8000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
double dutyCycle = 0;
int main(void)
{
DDRB = 0xFF;
TCCR0 |= (1<< WGM00) | (1<<WGM01) | (1<<COM01);
OCR0 = (dutyCycle/100.0)*255.0;
TCNT0 = 0xFF;
TIMSK |= (1<< TOIE0);
TIFR = (1<< TOV0);
sei();
TCCR0 |= (1<< CS00);
while(1)
{
//TODO:: Please write your application code
_delay_ms(100);
dutyCycle += 10;
if(dutyCycle > 50)
{
dutyCycle = 0;
}
}
}
ISR(TIMER0_OVF_vect)
{
OCR0 = (dutyCycle/100.0)*255.0;
}