Archiwum pl.misc.elektronika na elektroda.pl



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści


A nie wpychasz za szybko przypadkiem ? To ogólnie wiadome a czasem jakoś
"się zapomni" o tym fabrycznym 1 MHz - mnie się zdarza :-)

Może przyda się dla porównania sprawdzona funkcja :

<>
char StartPrgMode(void)
{
char i,j,backbyte;
uint command,mask;

command=0xac53;
mask=0x8000;
backbyte=0;

CLR_SCK();
CLR_MOSI();

for (i=0;i<32;i++)
{
CLR_RST();
// włączenie bufora 244 przy niskim SCK
// reset osiąga poziom niski z niewielkim sprzętowym opóźnieniem,
// które uwzględniamy łącznie z wymaganymi prze interfejs ISP 20 ms
StartT1Delay(50000);
while (!T1_DELAY_DONE) ;

// teraz wysyłamy sekwencję zezwalającą - jeśli odpowiedź jest poprawna
// wychodzimy z pętli
for (j=0;j<16;j++) // komenda
{
if (command & mask) SET_MOSI(); else CLR_MOSI();
ISP_SCK_DELAY();
SET_SCK();
ISP_SCK_DELAY();
CLR_SCK();
mask = mask >> 1;
}
CLR_MOSI();
for (j=0;j<8;j++) // odczyt bajtu zwrotnego
{
ISP_SCK_DELAY();
SET_SCK();
ISP_SCK