România
Roportal.ro

Ceas program sursa ...

Început de Lorinczalexandra, Mie 8 aug 2012 · 0 răspunsuri · 3.244 vizualizări

Lorinczalexandra1 mesaje#1

Buna ,

Am nevoie de ajutor , va rog ajutati`ma , am scris un program in Code::Blocks. Am un microcontroler ATmega8535, 8 digiti pe care incerc sa afisez ceasul. In C# prima data cand '' apas'' butonul pentru trimiterea datelor, imi afiseaza corect ceasul, dar daca modific minutul sau ora si trimit ... nu mi se mai modifica nimic . Problema este din programul sursa, imi ramane blocat ... cred... in bucla .. si nu imi face un reset cand trimit a doua oara datele ... Aici este programul .. main`u` ...

nr_bytes_rec=0;

while (1)

{

__watchdog_reset();

__no_operation();

if( (UCSRA & (1<<RXC)) )

{

datax=UDR;

nr_bytes_rec = nr_bytes_rec+1;

if (nr_bytes_rec==1)

{data1=datax;

if(data1=='S')

{

}

else

{nr_bytes_rec=0;}

}

if(nr_bytes_rec==2)

{data2=datax;

if(data2=='E')

{

}

else

{nr_bytes_rec=0;}

}

if(nr_bytes_rec==3)

{data3=datax;

if(data3=='T')

{

}

else

{nr_bytes_rec=0;}

}

{

if(nr_bytes_rec==4)

{data4=datax;}

if(data4==EEPROM_read(127))

{

if(nr_bytes_rec==5)

{rxhour=rxhour+(datax-0x30)*10;

hour = rxhour;}

if(nr_bytes_rec==6)

{rxhour = rxhour+(datax-0x30);

hour = rxhour;

rxhour=0;}

if(nr_bytes_rec==8)

{rxmin=rxmin+(datax-0x30)*10;

min = rxmin;}

if(nr_bytes_rec==9)

{rxmin=rxmin+(datax-0x30);

min=rxmin;

rxmin =0;

nr_bytes_rec=0;

}

}

}

}

}

}

← Înapoi la Programare