atmega162 mag keine Calls?!

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo,

das kleine Programm

---8<----
void delayms(unsigned int ms);

int main (void)
{
  sbi(DDRB,PINB0);
  while(1)
  {
        sbi(PORTB, PINB0);
        delayms(2000);
//      for (i=0;i<65535;i++)
//      { asm volatile ("nop"); }

        cbi(PORTB, PINB0);
        delayms(2000);
//      for (i=0;i<65535;i++)
//      { asm volatile ("nop"); }
  }
}
void delayms(unsigned int ms)
{
        unsigned int i;

        for (i=0;i<ms;i++)
        {
                _delay_loop_2(1000);
        }
}
----->8-----

zickt auf meinem ATmega162 rum: wenn ich die auskommentierten
Verzögerungsschleifen statt der delayms() verwende, funktioniert es. Sobald
ich aber die Calls verwende, geht PINB0 auf high, und dabei bleibt es dann.

Ich kann in diesem Code nix giftiges entdecken - ebensowenig im generierten
Code. Der Stack wird ordnungsgemäß mit 0x4ff initialisiert. PINB0 bleibt
auch tatsächlich auf high und schaltet nicht etwa mit hoher Frequenz um,
hab mit dem Oszilloskop nachgesehen. Im Simulator funktioniert das Ding
auch.

Hat wer eine Idee?

Danke,
Sebastian



Re: atmega162 mag keine Calls?!

Quoted text here. Click to load it

Hat sich erledigt: die 161-compatibility-Fuse war gesetzt, und uisp hat das
nicht angezeigt.....

Sebastian

Site Timeline