AVRstudio padne pri pokusu o debugging

Ahoj
Pouzivam AVRstudio s kompilatorem GCC.Stahl sem si kod z internetu.Dam build a to probehne v poradku.Pak dam debugging a nastane runtime error a AVRstudio spadne uplne.Vite nekdo cim by to mohlo byt?Dekuji…

#include <avr/io.h>
void delay(unsigned int num)
{ unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}
int main(void)
{ DDRB |=_BV(PB0); // DDR = “Data Direction Register”
while(1)
{ PORTB &=~(_BV(PB0));
delay(1);
PORTB |=_BV(PB0);
}return 0;
}

co je to za funkci _BV() nebo to je jen nejakej vytazek z programu? a v jake casti programu to spadne?

Taky nevim co je to za funkci.Navic sem zacatecnik.Ten program by mel blikat s ledkou.Dam build a result 0 errors 0 warnning.Pak dam start debugging a okamzite to hodi runtime error.Pri vytvareni projektu v tom AVRstudio sem pouzil AVR simulator.Je tam toho vic dal sem ale AVR simulator protoze podporoval muj obvod ATmega16.

Je to makro z knihovny “sfr_defs.h”, která provádí v podstatě toto:

#define _BV(bit) (1 << (bit))

v tom bych chybu neviděl.
A popravdě tam žádnou chybu nevidím.

Akurat ja mu tu knihovnu t tom jeho programe nevidim zahrnutu …

no prave proto se ptam ze nikde nevidim includovanou zadnou funkci ani zadnou definici funkce, ale to by mel upozornit kompilator, ze to nenajde

Knihovnu “sfr_defs.h” by automaticky měla natáhnout knihovna “avr/io.h”.

Chyba nebude v kodu… Napadlo me jestli pouzivam spravnej simulator,pri tvorbe projektu si vyberu ze chci GCC,dam nazev a pak se mi obevi vic tech moznosti,bohuzel ted to neskusim.Stahl sem si nejnovejsi AVRstudio , WinAvr pouzivam starsi ,windows xp SP1

Výběr “AVR GCC” je v pořádku.
Z výběru simulátorů vybírám “AVR Simulátor” (bez dvojky).
S tím mi to funguje.
Pak ještě vybrat procesor a kliknout na FINISH.

Tak nevim cim by to mohlo bejt,az budu doma tak skusim nakou trivialitku treba jen jen fci majn a nic v ni.Jestli to bude padat tak to opravdu nebude kodem ale necim jinym a ja budu v riti :frowning:

Za prvnim for v “delay” chybí středník. Nemají být ty cykly vnořené?
Deklarace i a j by měla být jako “volatile”, jinak nejspíš překladač cykly vyhodí jako zbytečnou brzdu. Když chceš používat zpoždění, ve kterém mcu nic nedělá, je jednodušší použít knihovnu “util/delay.h”.
Kódy sem dávej do tagu “[code_]… [/code_]” (bez podtržítka).
V řiti nebudeš, nejspíš postačí správné nastavení projektu nebo reinstalace :wink:

[code]#include <avr/io.h>
#include <util/delay.h>

int main ()
{
// inicializace mcu
DDRB |= 1<<PB0; // PB0 jako vystup
// main loop
for(;:wink:
{
PORTB |= 1<<PB0; // zapis “1” na pin PB0
_delay_ms (500); // funkce z “util/delay.h”, zpozdeni 500ms
PORTB &= ~(1<<PB0); // nulovani PB0
_delay_ms (500);
}
return 0;
}[/code]

Aktualizoval sem Widows,preinstaloval sem nejnovejsi verze softwaru a vse ok.dik

pro zmenu mi ponyprog hlasi Test failed na LPT1.Pred servis pakem 2 slapal v poho.takze zakladam novy tema :frowning: