Gast
#1619352
Hallo,
ich versuche mich gerade in C. Ich habe einen Rechteckgenerator laufen
der zwei Rechtecke am PORTC erzeugt, zusammen mit einem externen PLL.
PINC0 hat die halbe Frequenz von PINC1. Beide Ports möchte ich intern
mit einem logischem EODER verknüpfen um ein um 90 Grad versetztes
Rechteck am PORTB zu bekommen. Ich bekomme aber immer nur zwei
phasengleiche Rechtecke am Ausgang. Hier der Programmauszug:
.............
Freq=TCNT0;
if(Freq >= 128){
PORTC &= ~(1<<PC1);
}
else
{
PORTC |= (1<<PC1);
}
if(Freq >= 256){
if(PINC & (1<<PC0))
{
PORTC &= ~(1<<PC0);
}
else
{
PORTC |= (1<<PC0);
}
PORTB ^= PC0 ^ PC1; //Hier sollte ein um 90 Grad Phasenverschobenes
//Rechteck zu PC0 rauskommen!
........
Was mache ich falsch?