Jag har tillverkad några enheter som i essens består av en PIC16F628A, ett Easy Radio modul, spänningsregulator och lite småkrafs.
Deras funktion:
Ena enheten mätar en puls-tid och skickar den i ett textformat via radion, det finns lite grejar med att pulsen bildas av 2 ingångar och att dessa BÅDA ska vara aktiva vid pulsavslut osv.
Den andra enheten skickar ut det inkommande meddelande på ett display, i detta fall med 320mm stora tecken.
Det första modulen fungerar ganska bra nu, det var en aning dumheter med att det spolade vissa mätningar men det var en klantig tanke som gjorde det.
Mottagaren har varit desto mer besvärlig! Den har låst sig lite hur som helst, enda sätt att "få loss den" har varit att kunden brytar strömmen.
Essentiellt är funktionen att PIC'en tar emot ett datablock, kollar adressen mot den adress som enheten har (hex omkopplare) och skickar ut själva datadelen vid adress-match.
Tyvärr är det olika baudrates för sändning och mottagning, 2K4 hhv. 19K2. Efter en massa test och bökande hos kunde framkom det att PIC'en satt fast i interruptdelen pga. en (okänd vilken) interrupt som inte blev rensat.
Jag nollade PIR1 (enda aktiva interrupt) som första steg i interrupten men det hjälpte inte ett skvatt, först då jag AND'ade INTCON med 0xC0 släppte det, vi fick iaf. inte fler låsningar på de testar vi gjorde.
Jag ändrade baudrate via SPBRG & TXSTA, thats it. På något jävla vis aktiverades en av de interrupts som ligger med IF i INTCON och orsakade en aldrig nollad interrupt.
Jag har som sagt löst problemet (nåja, 99,9999999% säker

Edit: Just det: programmet är gjort i MikroC, jag har inte än dekodad det för att se om det är det som ställer till det och jag vetefan om jag ids, det kör nu så pilla inte!