mega128 will nicht!!

Gast #367604
Lesenswert?
• ▲
▼
Hallo Zusammen,

vielleicht kann mir einer einen Tipp geben! Ich habe mir ein STK501 mit
dem Mega128 bestellt. Dies habe ich in Betrieb genommen. Vielleich mal
kurz den Code:

int main (void)
{

  DDRA = output;
  DDRB = output;
  DDRD = input;
  PORTD = pull_up;

  SFIOR &= (1<<PUD);

  uint8_t i, sinus, x;

  while (1)
  {
    if(!(PIND & (1<<PD0)))
    {
      _delay_ms(10);

      PORTB ^= (1<<PB0);
    }
  }
}

Der Controller schaltet aber den ganzen Port auf high und alle LED's
auf dem STK500- Board gehen an!!! Was mache ich falsch??????

Gruß
Benjamin
Gast #367607
Lesenswert?
• ▲
▼
Hello Benjamin

You are not using the same port you are using port d and b :-)

Try this simpler one:

while( 1 )
{
  if( PINB & (1<<PB0) )
  {
    PORTB &= ~(1<<PB0);
  }
  else
  {
    PORTB |= (1<<PB0);
  }
  _delay_ms(10);
}

p.s I can not use PORTB ^= (1<<PB0) under gcc compiler;

Preben
Gast #367609
Lesenswert?
• ▲
▼
Da der Code oben bei weitem nicht vollständig ist, kann man da nicht
mehr zu sagen. Es könnte immerhin sein, dass irgendwoanders im Programm
am Port B rumgefummelt wird. Warum schickst Du nicht gleich den
kompletten Code (aber bitte als Anhang und in einem Format, das jeder
problemlos lesen kann!)

@Preben:
> You are not using the same port you are using port d and b :-)
Yes, of course. He uses PortD as input and PortB as output...

> I can not use PORTB ^= (1<<PB0) under gcc compiler
Then there's something wrong with your gcc or (rather) with your
program...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren