Re: Opět jsem v PICu(i)

Ondřej Janovský ondrej.janovsky na alarex.cz
Pátek Listopad 11 14:14:24 CET 2016


Byl to pokus o nadefinování vlastního typu 64bit proměnné.

Byl
typedef  unsigned long myuint64[2];

Nyní je
typedef struct {
     unsigned long bytes[2];
} myuint64;

Je to na počítání milisekund, aby to bylo stejné jako v Javě, kde je 8 
byte počítadlo v ms.
Někde se mi tam něco krutě rve, protože když jsem zkoušel tu knihovnu ve 
smyčce, tak to počítalo správně a nic se nekurvilo.
Ale jakmile jsem to pověsil celé na tik po 1ms, tak jsem v háji.

Celé to zkusím přepsat do čistého projekty, abych tam neměl další věci 
jako 2 kanály I2C atd. a snad se něčeho doberu.

Oja


On 11/11/2016 14:06, Miroslav Draxal wrote:
> Pokud je
> char a[5], b[5];
>
> a používám XC8 1,38 a MPLABx3.45 a simuluji 18f2620 tak mi to hází výsledky
> OK. Můžete to popsat trochu víc, za jakých situací?
>
> V případě, že vám to hodí chybný výsledek, koukněte se oknem Windows/Pic
> memory views/File registers  v hex formátu na adresy polí, co je v nich . Ve
> verzi MPLABx 3.40 se v okně Variables se občas zobrazovaly nesmysly.
> Reportoval jsem to Microchipu, ale jestli to opravili v nové verzi, nevím.
> Nezkoušel jsem zatím. Tím chci říct, že v polích může být jiná hodnota, než
> se zobrazuje ve Variables. (zápis od jinuď)
>
> -----Original Message-----
> From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Ondřej
> Janovský
> Sent: Friday, November 11, 2016 10:37 AM
> To: HW-news
> Subject: Opět jsem v PICu(i)
>
> Zdravim,
>
> koukám jako jelen, když mi PIC18 porovnává dva prvky pole unsigned long,
> jsou v nich 0 a on tvrdí, že jeden prvek je větší než druhý. Tvrdí to občas,
> ale netuším, jak na to přijde. Ze zoufalství jsem doplnit typy i do If, ale
> nic to nepomáha.
>
> signed char ret = 0;
>       if ((unsigned long)a[0] > (unsigned long)b[0]) {
>           ret = 2;
>       } else if ((unsigned long)a[0] < (unsigned long)b[0]) {
>           ret = -2;
>       } else {
>
>           if ((unsigned long)a[1] > (unsigned long)b[1]) {
>               ret = 1;
>           } else if ((unsigned long)a[1] < (unsigned long)b[1]) {
>               ret = -1;
>           }
>       }
>       return ret;
>
>
> Oja
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list