C xc8 rozkald double na byty

Miroslav Draxal evik na volny.cz
Úterý Květen 16 13:39:00 CEST 2017


No přečíst to není problém. Ale musí se číst vše. On kvalifikátor eeprom
totiž není podporovaný u " mid-range device" což je můj případ (5.5.5.1) a v
5.5.5.2 zase nepíšou, jak do makra __EEPROM_DATA "jak namontovat" pro
preprocesor číslo ve tvaru double.  A i když kouknu na celou kapitolu 6....
(zběžně jsem to prolít) tak tam taky nějak nevidím (pokud jsem nepřehlédl)
nic, jak to do toho makra __EPROM_DATA dostat.
Podotýkám. Jsem samouk, sice už nějakých 15 let, ale prostě zákoutí C a
speciality různých překladačů musím hledat na netu. Né pokaždé trefím ty
správná slova pro dotaz do googlu a když nic nenajdu, tak se zeptám tady.
Prostě mě nenapadlo, že se to dá zapsat takhle jednoduše. Takže není na
místě se rozčilovat. Prostě jsem amatér a mám amatérské dotazy. 
Míra.
 

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jan Waclawek
Sent: Tuesday, May 16, 2017 10:57 AM
To: HW-news
Subject: RE: C xc8 rozkald double na byty

Ach jaj. To fakt pisem tak nezrozumitelne?

Nie, neexistuje univerzalna prenositelna metoda ako prinutit prekladac
vygenerovat subor reprezentujuci obsah tej pamate. Takze je to vzdy
prekladacovo/platformne-zavisle. A tiez neexistuje "standardna"
reprezentacia cisiel v pamati (najma pri rozsireniach pre pamatove
triedy/named address spaces); ergo takyto subor vygenerovany pre jednu
platformu nebude prenositelny na inu (citaj: nie je zaruka ze je
prenositelny na akukolvek inu, samozrejme *moze* byt prenositelny ak tie dve
platformy maju rovnaku reprezentaciu atd.atd.). Pochopitelne, s intimnou
znalostou internej reprezentacie u platformy A viete takyto subor
vygenerovat na akejkolvek platforme, ale ta intimna znalost je prave
definicia platformovej zavislosti.

Ak naozaj hladate nieco univerzalne pouzitelne, tak asi najlepsie je tu
pamat fyzicky naplnit a potom ju v programatore precitat; ale toto ste asi
nechceli pocut.


>Ono je problém to, ľe jsem nikde oficielně nenaąel, jak to vlastně zapsat. 

Co sa tyka tej v XC8 fungujucej konstrukcie - no tak som si stiahol manual k
XC8, za 5 sekund nasiel makro __EEPROM_DATA a k nemu sa v kap.5.5.5.2
pise:
The __EEPROM_DATA() macro expands into in-line assembly code.

Ergo, ta syntax parametrov - ktora je mimochodom v C priamo chyba, pretoze
C99 6.5.7 explicitne vyzaduje pre obidva operandy operatora >> aby boli
celociselne - je syntaxou inline assembleru ktory sa zda ze je u XC8 priamo
konvertovany na jeho asembler. No a potom k tomu je cela kapitola 6.


To fakt je problem si precitat manual?


wek



----- Original Message ---------------

>Ono je problém to, ľe jsem nikde oficielně nenaąel, jak to vlastně 
>zapsat. A docela mě to zaráľí, protoľe zapsat do eeprom nějakou double 
>konstantu mi přijde, ľe není zase aľ tak exotické.
>
>Pokud pouľiju v xc8 to
>
>double x = _NR;
>
>Tak to vyhodí varování, ľe x není pouľito. Dá se to lokálně zakázat.
>
> 
>


>
> 
>
>No ono to bute takove to reseni, ktere muze nekdy fungovat ale mne se z 
>toho trosku jezi chlupy. Vyborna vec je mit pak potrebu prenest 
>takoveto zdrojaky na jinou platformu.
>
>Dne 16.05.2017 v 8:00 Zuffa Jan napsal(a):
>
>divne, skusil som vo visual studiu a tam to bez explicitneho 
>pretypovania
>
>na int skoci na chybe illegal, left operand has type 'double
>
> 
>
>j.
>
> 

> 
>
>Mohu potvrdit, ľe XC8 ver 1.38
>
>#define CelkovyVykon_kWh_rokDb_EEPROM 596.250
>
> 
>
>__EEPROM_DATA(0, // byt0 CelkovyVykon_kWh_denDb
>
>              0, // byt1
>
>              0, // byt3
>
>              0, // byt4 CelkovyVykon_kWh_denDb -  4bytová přesnost
>
>              CelkovyVykon_kWh_rokDb_EEPROM & 0xff, // byt0 
>CelkovyVykon_kWh_rokDb
>
>              (CelkovyVykon_kWh_rokDb_EEPROM >> 8) &0xff, // byt2
>
>              (CelkovyVykon_kWh_rokDb_EEPROM >> 16) &0xff, // byt3
>
>              (CelkovyVykon_kWh_rokDb_EEPROM >> 24) &0xff); // byt4 
>CelkovyVykon_kWh_rokDb 4bytová přesnost
>
> 
>
>To uloľí správně do eeprom jako 596.25
>
>Nic se násobit nemusí.
>
>Míra
>
> 
>
> 

_______________________________________________
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