atmega162 mag keine Calls?!

S

Sebastian Voitzsch

Guest
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
 
Sebastian Voitzsch wrote:

Hallo,

snip
Sobald ich aber die Calls verwende, geht PINB0 auf high, und dabei bleibt
es dann.
Hat sich erledigt: die 161-compatibility-Fuse war gesetzt, und uisp hat das
nicht angezeigt.....

Sebastian
 

Welcome to EDABoard.com

Sponsor

Back
Top