 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
| Poglej prejšnjo temo :: Poglej naslednjo temo |
| Avtor |
Sporočilo |
HasanIbnSaba Neznanec

Pridružen-a: Sre 06 Jul 2011 11:37 Prispevkov: 1 Aktiv.: 0.01 Kraj: Neznan
|
Objavljeno: Sre Jul 06, 2011 11:45 am Naslov sporočila: Časovnik pri UARt komunikaciji |
|
|
Pozdravljeni!
Sem nov na forumu, ter se soočam z nepremagljivo oviro pri komunikaciji preko UART.
Poskušam komunicirati med dvema mikrokrmilnikoma preko ir. Stvar mi v praksi deluje, vendar pa bi jo želel nadgraditi s časovnikom, v primeru neuspešnega prenosa oz napake.
S v primeru izteka časovnika bi rad prekinil izvajanje zanke(recimo ko poteče 1 sekunda):
void sprejmi(){
char read_byte = 0; //spremenljivka v katero shranimo posamezen bajt
unsigned short i=1;
while (read_byte!=stop) { // zanka, pocakamo start byte
if(Uart1_Data_Ready())//preverimo če je zlog v predpomnilniku
{
read_byte == Uart1_Read(); // ga shranimo v byte
}
if (read_byte = start){ // Po sprejemu start byte, sprejemamo do stop byta
while(read_byte!=stop){ //sprejema dokler ne sprejeme stop byta oz koncne sekvence
if(Uart1_Data_Ready()){
read_byte=Uart1_Read(); //preberemo zlog
paket_s[i]=read_byte; //spremenljivko shranimo v paket_s
i++; //povecamo stevec
}
}
}
}
}
Stvar je verjetno potrebno realizirati z interrupt rutino...vendar ne vem kako se lotiti zadeve.
Lp, ter vnaprej hvala za pomoč |
|
| Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 232 dni
Powered by phpBB © 2001, 2005 phpBB Group
|