pointery C

Miroslav Draxal evik na volny.cz
Středa Květen 22 10:07:41 CEST 2013


Tak zřejmě volba hi-tech compiler - data model - memery model - large (v
MPLABx, v MPLAB to bude v nastavení projetu)

Ještě vyzkouší, kouknu do ASM, ale vypadá to nadějně. Míra 

 

From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Miroslav Draxal
Sent: Wednesday, May 22, 2013 9:30 AM
To: 'HW-news'
Subject: RE: pointery C

 

Doufám, že nevadí kousek kódu.

Nejprve si jednou nastavím začátek bufferu adresu do ukazatele, a pak jí
pouze inkrementuji. Nemůže být problém v tomhle? Jakmile to přeteče
adresování 255, tak to neskočí do další stránky. Míra     

 

for (Program = 0; Program <= 2; Program++)

    {

               pTest = (char*) &ProgramRAM[Program][RAM_AutoMesic];

               if ((*((_ProgramEEprom*) pTest)).Mesic == 0 ||
(*((_ProgramEEprom*) pTest)).Mesic > 12)//kontrola mezí

                   (*((_ProgramEEprom*) pTest)).Mesic = 1;

               tmp = (*((_ProgramEEprom*) pTest)).Mesic;

 

               pTest++; //RAM_Den

               if (*pTest == 0)

                   *pTest = 1;

               else if (*pTest > MesicDnu [tmp])

                   * pTest = MesicDnu [tmp];

 

               pTest++; //RAM_Hodin

               if (*pTest > 23)

                   *pTest = 0;

 

               pTest++; //RAM_Minut

               if (*pTest > 59)

                   *pTest = 0;

 

               pTest++; //RAM_ZaDnu

               if (*pTest > RAM_ZaDnuMaxSet)

                   *pTest = 0;

 

               pTest++; //RAM_CyklProgram

               if (*pTest > RAM_CyklProgMaxSet)

                   *pTest = 0;

 

               for (ProgPolSekce = 0; ProgPolSekce <= MaxProgPolSekce;
ProgPolSekce++)

               {

                   pTest++; //RAM_CisloSekce

                   if (*pTest > PocetSekci)//test číslo sekce

                              *pTest = 1;

 

                   pTest++; //test čas sekce

                   if (*pTest > CasSekceMax)

                              *pTest = 1;

                   tmp = *pTest;

 

                   pTest++; //test čas čerpadla sekce

                   if (*pTest > tmp)

                              *pTest = tmp;

 

                   pTest++; //test čas prolnutí pauza

                   if ((*((_ProgramEEprom*) pTest)).ProlnutiPauza.cas >
CasSekceMax)

                              *pTest = 0; //neber v úvahu prolnutí/pauza -
nastav natvrdo na pauza OFF

                   tmp = (*((_ProgramEEprom*) pTest)).ProlnutiPauza.cas;

 

                   pTest++; //test čerpadlo prolnutí

                   if (*pTest > tmp)

                              *pTest = tmp;

               }

    }

}

 

From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Ladislav Vaiz
Sent: Wednesday, May 22, 2013 7:55 AM
To: HW-news
Subject: Re: pointery C

 

Normu jsem nečetl, třeba k tomu Jano nebo Ced dodají něco zajímavého,
ale v praxi to není pravda, viz Debian AMD64:

checking size of char... 1
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of void *... 8

L.

Pavel Hudecek napsal(a):
> To je nějaké divné. Pointer by měl být vždy int, ať už ukazuje na
> cokoli. Int je právě tak definován: Typ určený k adresování na dané
> platformě, akorát navíc se znaménkem. Proto má na různých platformách
> různý počet bitů.
>
> Ale třeba je to v Hitecu jinak.
>
> PH

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



__________ Informace od ESET NOD32 Antivirus, verze databaze 8359 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 8359 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz


__________ Informace od ESET NOD32 Antivirus, verze databaze 8359 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 8359 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130522/f41ca098/attachment.htm>


Další informace o konferenci Hw-list