Hallo Leute,
Ich habe heute Abend mal versucht mir eine SW PWM zu programmieren.
Hier erst mal der Code:
Code
#define F_CPU 8000000
#include <avr\io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
void pwm1 (int wert)
{
//-------------------------------------
for (int i = 255; i < 255; i++)
{
PORTB&= ~(1<<1);
}
//----------------------------------------
for ( int ix= (0); ix<255; ix++)
{
PORTB|= (1<<1);
}
//-------------------------------------
}
void pwm2 (int wert1)
{
//-------------------------------------
for (int ig = 10; ig < 255; ig++)
{
PORTD=0x00;
}
//----------------------------------------
for ( int igx= 245; igx<255; igx++)
{
PORTD=0xFF;
}
//-------------------------------------
}
int main (void)
{
DDRB= 0xFF; //Ausgang
DDRD=0xFF;
do
{
pwm1(10);
pwm2(20);
}
while(true);
}
Alles anzeigen
Die Werte für die Funktion werden nicht mehr benutzt. Wenn ich die Funktion pwm1 aufrufe, funktioniert die PWM einwandfrei. Das gleiche passiert wenn ich die Funktion pwm2 aufrufe. Aber wenn ich beide wie im Programm aufrufe, dann leuchten die LEDs nicht wie gewollt mit ihren jeweiligen Werten, sondern fast gleich hell.
Habt Ihr irgendwelche Lösungsvorschläge?
Gruß Frank