[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