<html>
<head>
<meta content="text/html; charset=iso-8859-2"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Dne 14. 2. 2017 v 10:55 Hynek Sladky
napsal(a):<br>
</div>
<blockquote cite="mid:58A2D426.6030506@centrum.cz" type="cite">
<meta content="text/html; charset=iso-8859-2"
http-equiv="Content-Type">
<font face="Helvetica, Arial, sans-serif">Mam registr: </font>GPIOF->ODR<br>
Ted ziskam jeho adresu: &GPIOF->ODR<br>
Adresa = ukazatel je podle typu promenne, tedy zde na uint32_t.<br>
Pro prekladac zmenim typ - ukazatel na byte - aby vedel, jake
instrukce pouzit: (uint8_t*)&GPIOF->ODR<br>
Dale napisu obecnejsi - snad i pochopitelnejsi - zapis pro pristup
k jednotlivym bytum: ((uint8_t*)&GPIOF->ODR)[0] = 0x12;<br>
<br>
Aby se s tim pracovalo jednoduseji, tak z toho muzeme udelat
makro:<br>
#define PORT_BYTE(port) ((volatile uint8_t*)&(port))<br>
Pak muzu psat jednodussi zapis:<br>
PORT_BYTE(GPIOF->ODR)[0] = 0x12;<br>
A muzu to vyuzit take pro dalsi porty bez nutnosti definovat si
nove a nove definice...<br>
Makro se da upravit tak, aby cislo bytu bylo take jako parametr:<br>
#define PORT_BYTE(port,byte) ((volatile
uint8_t*)&(port))[byte]<br>
PORT_BYTE(GPIOF->ODR,0) = 0x12;<br>
<br>
Hynek Sladky<br>
<font face="Helvetica, Arial, sans-serif"><br>
</font></blockquote>
<font face="Helvetica, Arial, sans-serif">diky Fanda</font><br>
<blockquote cite="mid:58A2D426.6030506@centrum.cz" type="cite"><font
face="Helvetica, Arial, sans-serif"> <br>
</font>
<div class="moz-cite-prefix">Dne 14.2.2017 10:23, Fanda Kopriva
napsal(a):<br>
</div>
<blockquote
cite="mid:83143f24-32c9-6cb2-9b9d-28c91bf7c730@elektronikavyvoj.cz"
type="cite"> <br>
*(volatile uint8_t *)&GPIOF->ODR = 0x12; <br>
diky za nakopnuti <br>
Ale tyto konstrukce jsou pro mne bohuzel neprehledne a zavani mi
temnou magii.:-) <br>
Stareho psa novym ...atd. <br>
nakonec jsem si dodefinoval registry s bytovym pristupem a
funguje to. <br>
<br>
sfr unsigned char volatile GPIOF_ODRL absolute 0x40021414; <br>
sfr unsigned char volatile GPIOF_ODRH absolute 0x40021415; <br>
GPIOF_ODRH = 0x12 <br>
<br>
fanda <br>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<p><br>
</p>
</body>
</html>