C wika tanong: Paano mag-set up ng 32 bit na magparehistro?

M

MagicSpark

Guest
Kailangan ko upang isaayos ang aparato kung saan ay kinokontrol ng 32 bit na magparehistro, na matatagpuan sa address 0x5000 halimbawa ako sinusubukan na malaman kung ano ang pinakamahusay na paraan upang i-set ang 32-bit na magparehistro sa Ansi C wika.

Una ay diskarte upang itakda ang bawat byte hiwa-hiwalay

# define PLLCONFIG0 0x5000
# define PLLCONFIG1 0x5001
# define PLLCONFIG2 0x5002
# define PLLCONFIG3 0x5003

Pagkatapos sa programa sa set ng bawat byte hiwalay, halimbawa:
PLLCONFIG0 = 0xFA;
PLLCONFIG1 = 0x08;
PLLCONFIG2 = 0xF0;
PLLCONFIG3 = 0xAE;

Ang problema sa paraan na ito ay na kung ang ilang mga parameter ay 11 bits wide,
halimbawa 8-18 bit, at pagkatapos ay ang isa ay dapat split halaga ng parameter na at
tayahin halaga para sa hiwalay na bytes.Ang ikalawang paraan ay upang subukan upang itakda ang halaga ng rehistro ng sabay-sabay na halaga bilang 32 bit long:

hindi linagdaan katagal * pPLLConfig = (hindi linagdaan katagal *) 0x5000;

* * * pPLLConfig = 0xAEF008FA;Mangyari lamang na ipaalam kung ano ang diskarte ay mas mahusay.Kung alam mo kung saan ko mahahanap ang mga halimbawa C
para sa mga katulad na multibytes magrehistro configuration, pakisabi sa akin.

Salamat

 
Hi, Gumamit ng isang struct o unyon tulis sa pamamagitan ng isang vanturo.Sa struct / unyon na gagawin mo bit patlang ang haba na kailangan mo.

Paul.

Tingnan ang halimbawang ito: http://www.cs.cf.ac.uk/Dave/C/node13.html # SECTION001321000000000000000

 

Welcome to EDABoard.com

Sponsor

Back
Top