[elektro] STM32F4 -- I/O problema -- fagyas
uprogc .
uprogc at gmail.com
Thu Oct 22 17:14:49 CEST 2015
Szia,
User szinten fagyas, tudom hogy vegtelen ciklusba fut a kulonbozo faultok
eseten.
Ok, probalkozom.
Udv.
Szabi
2015-10-22 18:06 GMT+03:00 hg12345 <hg12345 at freemail.hu>:
> Hi,
>
> Ebből sejthető mit csinál a programod, de a struktúra pointer mutathat
> akárhová is... szóval ebből semmi nem derül ki!
>
> Ezek nem 8 bites uC-relek, itt nincs fagyás! Ezzel érdemes lenne tisztába
> lenni.
>
> Bármilyen hiba van az ARM uC-ban, akkor automatikusan elmennek a service
> IT-kre, ha nem foglalkoztál vele, akkor minden service IT-n egy végtelen
> ciklus űl (egy WEAK asm-ben C-ben definiált kód és mindig végtelen ciklusra
> írják a programozók), amiből nem tudod kivenni (mert ezeknél magasabb
> prioritású IT nem létezik ebben a környezetben), csak resettel a programot.
>
> Első nekifutásra ki kéne nyomozni, melyik szerviz IT-re futottál, ez meg
> van akkor már detektáltad a hiba okát is.
>
> Ajánlom figyelmedbe (-3),-2,-1,0,1, 2 helyeken lévő IT vektorokat, ezekhez
> tartozó feldolgozó részbe tegyél BRK-t és egy pillanat alatt meglesz mi
> okozza a hibát. ((( Nem csak a SW hibák, de a valódi HW és külső zavar
> hibák is idekergeti a program futását)))
>
> Ha ennél többet akarsz tudni, akkor a hiba rutinokhoz tartozó
> regisztereket ki tudod küldeni egy listázó kimenetre, akkor nem is kell
> debugger. (de ez se egyszerű) (((Egy erős külső zavar miatti HW hiba
> esetén nagyon izgalmas tud lenne egy ilyen regiszter tartalom lista, de
> megfogja)))
>
>
>
>
>
>
>
> "uprogc ." <uprogc at gmail.com> írta:
> >Sziasztok,
> >
> >Elakadtam I/O ugyben.
> >Az alabbi kod fagyast okoz. Kulon kulon futtatva a fuggvenyeket nincs
> >problema. Egymas utan futtatva viszont fagyas van. Mindket fv a C portot
> >hasznalja.
> >Arra rajottem hogy ha a C porton valtoztatok kimeneti biteket egymas utan,
> >attol fagy (ebbe az esetben legalabbis,..), ha a C porton egy bitet
> >megvaltoztatok utanna az E porton is egy bitet, attol nem fagy ki.
> >
> >*Mi a csuda lehet ?*
> >
> >
> >
> >*FVek:*void af_amp_onnoff( unsigned char onoff) // 1: ON, 0: OFF
> >{
> > if(onoff == 1)
> > CTRL_ANALOG_BOARD_PORTC->BSRRL = CTRL_AF_AMP; // 1
> > else
> > CTRL_ANALOG_BOARD_PORTC->BSRRH = CTRL_AF_AMP; // 0
> >}
> >
> >
> >void sw_rx_tx(unsigned char rxtx) // 1: TX, 0: RX
> >{
> > if(rxtx == 1) // tx
> > {
> > CTRL_ANALOG_BOARD_PORTC->BSRRL = SW_RX_TX ; // 1
> > }
> > else // rx
> > {
> > CTRL_ANALOG_BOARD_PORTC->BSRRH = SW_RX_TX ; // 0
> > }
> >}
> >
> >
> >*Nyomogomb esemenyre:*
> >
> > mode_rxtx ^= 1;
> >
> > if(mode_rxtx == 0) // TX mode
> > {
> > e_rxtx = MODE_TX; //
> >
> > sw_rx_tx(1); // 0:
> >RX, 1: TX
> > af_amp_onnoff(0);
> > }
> > else
> >// RX mode
> > {
> > e_rxtx = MODE_RX; //
> >
> > sw_rx_tx(0); // 0:
> >RX, 1: TX
> > af_amp_onnoff(1);;
> > }
> >
> >Udv.
> >Szabi
> >-----------------------------------------
> > elektro[-flame|-etc]
> >
>
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list