<div dir="ltr"><div>To by mohla byt nejaka riadiaca strukturka tej 1w zbernice. Tipujem, ze tam budu veci ako aktualny prikaz, identifikatory roznych 1w deviceov na zbernici a tak podobne. MUsite si to najst v tych zdrojakoch a zamysliet sa nad celkovou filozofiou navrhu tej kniznice. To bude ale chciet trochu hlbsiu analyzu a zamyslenie, nez len bezduche prepisovanie kodu.<br>
<br></div>A.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-01-27 Jan Půhoný <span dir="ltr"><<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">taky mi to tak připadá<div><br></div><div>OneWire_Init(struct OneWire *this, volatile IO_REG_TYPE *port, volatile IO_REG_TYPE *ddr, uint8_t pin)<br></div><div><br></div><div>takhle nejak bych to videl, OneWire_Init(struct OneWire *this, PORTE, TRISE, 2);<br>

</div><div><br></div><div>ale co dat jako parametr misto "struct OneWire *this" to nechapu...</div><div><br></div><div>H.</div><div class="gmail_extra"><br><br><div class="gmail_quote">Dne 27. ledna 2014 18:50 Andrej Jancura <span dir="ltr"><<a href="mailto:aj.hwlist@gmail.com" target="_blank">aj.hwlist@gmail.com</a>></span> napsal(a):<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Mam pocit, ze pin a port sa beru ako premenne v tych funkciach, teda su to ich parametre. Pozrite si to v definiciach. Potom sa ale pozrite este na strukturu portu toho Vasho pic. Je ina ako u 877. MOzno to bude dost podobne ako na AVR. Na tom AVR to ide ako parametre funkcii.<br>


<br></div><div><div>A.<br><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-01-27 Jan Půhoný <span dir="ltr"><<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Díky, ta knihovna je ale pro XC8 a PIC, jde to i přeložit, jen nevím jestli to mám udělat jako najít a nahradit nebo ta pin a port se bere jako proměnná ?<div><br></div><div>Mám tam PIC18F46K22.</div><div class="gmail_extra">



<br clear="all"><div>Honza Půhoný</div>
<br><br><div class="gmail_quote">Dne 27. ledna 2014 18:02 Andrej Jancura <span dir="ltr"><<a href="mailto:aj.hwlist@gmail.com" target="_blank">aj.hwlist@gmail.com</a>></span> napsal(a):<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Dobry vecer,<br><br></div>trochu som si to presiel, a mam pocit, ze by to malo fungovat aj na PIC, pokial za port a ddr dosadite prislusne adresy datoveho a io_type registra. Musite si to ale pozriet sam, pretoze to je cele z AVR a neviem, ci to ide univerzalne urobit na vsetkych portoch AVR. Mam pocit, ze niektore porty su adresovatelne bitovo aj bytovo, zatial co ine len bytovo. Takze vymysleli, ze sa pojde len bytovo... Pre Vas to znamena pouzit adresu PORTE a TRISE. OKrem toho mam pocit, ze PortE treba este nastavit na typ digital. To plati pre 877.<br>




<br></div>A.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-01-27 Jan Půhoný <span dir="ltr"><<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>></span><div>

<div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Tak se mi nedaří 1-wire přidat na PORTE,2<div><br></div><div>Můžete na to prosím někdo mrknout jak se to dělá? Jak to přiřadím na konkrétní pin, čekal jsem něco v #define, ale nic takového kam bych dal port a pin tam nevidím, příklad k tomu není...<br>





<div><br></div><div><a href="https://github.com/ideras/pic-onewire-library/commit/7e12723bc44f9703b6f7d4ca9eebcd348d7eb762" target="_blank">https://github.com/ideras/pic-onewire-library/commit/7e12723bc44f9703b6f7d4ca9eebcd348d7eb762</a><br>





</div></div><div><br></div><div>podle mě by to mělo být přes funkci <span style="color:rgb(153,0,0);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:11.818181991577148px;font-weight:bold;line-height:18px;white-space:pre-wrap">OneWire_Init</span></div>





<div><br></div><div>Ta je definována takto, ale nějak z toho nejsem moc chytrý, zkoušel jsem <span style="color:rgb(153,0,0);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;font-weight:bold;line-height:18px;white-space:pre-wrap">OneWire_Init</span></div>





<span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">(</span><span style="font-weight:bold;color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">struct</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">OneWire</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace;font-weight:bold">*</span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">this</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">,</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="font-weight:bold;color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">volatile</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">IO_REG_TYPE</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace;font-weight:bold">*</span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">port</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">,</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="font-weight:bold;color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">volatile</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">IO_REG_TYPE</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace;font-weight:bold">*</span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">ddr</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">,</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="color:rgb(68,85,136);font-weight:bold;font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">uint8_t</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap"> </span><span style="line-height:18px;color:rgb(51,51,51);font-size:12px;white-space:pre-wrap;font-family:Consolas,'Liberation Mono',Courier,monospace">pin</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">)</span><div class="gmail_extra">





<br clear="all"><div><br></div>
<br><br><div class="gmail_quote">Dne 26. ledna 2014 19:28 Jan Půhoný <span dir="ltr"><<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>></span> napsal(a):<div>

<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Takže ještě jednou díky za navedení. Už jsem se v MPLAB X a XC8 trochu zorientoval, displej a DS1302 už mi fungují :-) Dal jsem tam 18F46K22 a je to úplně pinově kompatibilní s PIC16F877A, takže nemusím předělávát plošňák.<div>






<br></div><div>Jak předpokládal wek, strávil jsem s tím dost času ...<br><div><br></div><div>Teď jsem narazil na pěknou knihovnu pro dallas 1 wire (např DS1820 teplotní čidla):</div><div><br></div><div><a href="https://github.com/ideras/pic-onewire-library" target="_blank">https://github.com/ideras/pic-onewire-library</a><br>






</div><div><br></div><div>Nerozumím ale definici portu, jak si to představují? Je tam tento zápis, kterému úplně nerozumím,</div><div><br></div><div>#define PIN_TO_BITMASK(pin)      (1 << pin)<br></div><div><br></div>






<div><div>// Platform specific I/O definitions</div><div>#define IO_REG_TYPE uint8_t</div><div>#define DIRECT_READ(port, mask)         (((*(port)) & (mask)) ? 1 : 0)</div><div>#define DIRECT_MODE_INPUT(ddr, mask)   (*(ddr)) |= (mask)</div>






<div>#define DIRECT_MODE_OUTPUT(ddr, mask)  (*(ddr)) &= ~(mask)</div><div>#define DIRECT_WRITE_LOW(port, mask)   (*(port)) &= ~(mask)</div><div>#define DIRECT_WRITE_HIGH(port, mask)  (*(port)) |= (mask)</div></div>






<div><br></div><div>to mám za "port" napsat třeba PORTE2 a mask = 0b00000010 ? nebo jak to chápat?</div><div><br></div><div>Bohužel žádný příklad u té knihovny není...</div><div><br></div><div>Díky za případné rady.</div>






<div class="gmail_extra"><br clear="all"><div>Honza Půhoný</div>
<br><br><div class="gmail_quote">2014-01-17 Jaromir Sukuba <span dir="ltr"><<a href="mailto:jarin.hw@gmail.com" target="_blank">jarin.hw@gmail.com</a>></span><div>


<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">PIC18F4550 je asi najexotickejsi a najmenej kompatibilny z rady PIC18F.<br>
Skusil by som sa pozriet na PIC18F4520 (stary, ale prevereny typ),<br>
pripadne 18F45K20 (novsi, lacnejsi, ale iba do 3,6V) alebo 18F45K22<br>
(este novsi, o nieco drahsi - ale lacnejsi nez 18F4520 - ale ide do<br>
5,5V). Vo vsetkych troch pripadoch mozete nahradit 45 cislom 46, 44<br>
alebo 43 a dostanete modely s mensou alebo vacsou FLASH.<br>
Pripadne sa pozrite na PIC16F1517/1519 (tieto su moje oblubene), 1937/1934.<br>
Nieco sa da vybrat aj tu<br>
<a href="http://www.microchip.com/maps/microcontroller.aspx" target="_blank">http://www.microchip.com/maps/microcontroller.aspx</a> alebo si skuste<br>
pofiltrovat v nejakom katalogu, trebars u Farnella alebo Mousera.<br>
<br>
Inak, 16F877A bude fungovat tiez s XC8 kompilatorom, ale s tymito<br>
novsimi modelmi mate viac pamate "na minanie" a hlavne - nielen PORT,<br>
ale LAT aj PORT registre, velmi sikovna vec. Periferie su inak defakto<br>
zhodne s PIC16Fxxx, ale maju niektore pridane vlastnosti, ktore su ale<br>
defaultne vypnute (namatkou - inverzia signalov USARTu, moznost<br>
pouzivania 16-bitoveho BRG registra). Trebars inicializacia USART-u<br>
alebo SPI, ak si spominam spravne, je identicka s radou 16Fxxx ak<br>
nepouzivate tie vylepsenia. Kazdopadne je lepsie to porovnat v<br>
datasheetoch.<br>
<br>
<br>
2014/1/17 Jan Půhoný <<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>>:<br>




<div><div>> hmm, diky moc, samozrejme je to ono ...blb jsem spis ja a pro oci nevidim<br>
> :-) Už mi to bliká ....<br>
><br>
> Jeste se dovolim zeptat jak je to s knihovnami pro tu 16F řadu, já tam budu<br>
> muset dát zpátky asi ten PIC 16F877A protože na USB Vreg vývodu 18F4550  mám<br>
> zapojeny data od DS1302 RTC ... jinak to pinově sedí, ale tohle je trochu<br>
> problém :-) BTW: existuje něco z 18F řady co by 100% pinově sedělo s<br>
> PIC16F877A - nic podobnějšího než 18F4550 jsem nenašel. Mám tam zapojený<br>
> všechny vývody...<br>
><br>
> Je něco vyzkoušeného pro LCD displej nebo 1wire dallas čidla?<br>
><br>
> budou fungovat ty 18 knihovny pro 16 řadu ?<br>
><br>
> Díky.<br>
><br>
> Honza Půhoný<br>
><br>
><br>
> 2014/1/17 Jaromir Sukuba <<a href="mailto:jarin.hw@gmail.com" target="_blank">jarin.hw@gmail.com</a>><br>




>><br>
>> 2014/1/17 Jan Půhoný <<a href="mailto:konference@puhy.cz" target="_blank">konference@puhy.cz</a>>:<br>




>> > #define _XTAL_FREQ=1000000<br>
>><br>
>> Zmente na<br>
>> #define _XTAL_FREQ 1000000<br>
>><br>
>> Tuto chybu mal Vas prvy zdrojak a ja blb som to po Vas vcera<br>
>> skopiroval bez toho, aby som to aj skusil skompilovat :-)<br>
>> _______________________________________________<br>
>> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
>> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>




>> <a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>




> <a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
><br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>




<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</div></div></blockquote></div></div></div><br></div></div></div>
</blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>


<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>


<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>

<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div><br></div></div></div></div></div></div>
<br>_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>

<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div><br></div>