Re: Mikro C PIC - string - problém

Andrej Jancura aj.hwlist na gmail.com
Pondělí Leden 27 19:27:09 CET 2014


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.

A.


2014-01-27 Jan Půhoný <konference na puhy.cz>

> taky mi to tak připadá
>
> OneWire_Init(struct OneWire *this, volatile IO_REG_TYPE *port, volatile
> IO_REG_TYPE *ddr, uint8_t pin)
>
> takhle nejak bych to videl, OneWire_Init(struct OneWire *this, PORTE,
> TRISE, 2);
>
> ale co dat jako parametr misto "struct OneWire *this" to nechapu...
>
> H.
>
>
> Dne 27. ledna 2014 18:50 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>
> 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.
>>
>> A.
>>
>>
>> 2014-01-27 Jan Půhoný <konference na puhy.cz>
>>
>>> 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á ?
>>>
>>> Mám tam PIC18F46K22.
>>>
>>> Honza Půhoný
>>>
>>>
>>> Dne 27. ledna 2014 18:02 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>>>
>>> Dobry vecer,
>>>>
>>>> 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.
>>>>
>>>> A.
>>>>
>>>>
>>>> 2014-01-27 Jan Půhoný <konference na puhy.cz>
>>>>
>>>> Tak se mi nedaří 1-wire přidat na PORTE,2
>>>>>
>>>>> 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í...
>>>>>
>>>>>
>>>>> https://github.com/ideras/pic-onewire-library/commit/7e12723bc44f9703b6f7d4ca9eebcd348d7eb762
>>>>>
>>>>> podle mě by to mělo být přes funkci OneWire_Init
>>>>>
>>>>> Ta je definována takto, ale nějak z toho nejsem moc chytrý, zkoušel
>>>>> jsem OneWire_Init
>>>>> (struct OneWire *this, volatile IO_REG_TYPE *port, volatile
>>>>> IO_REG_TYPE *ddr, uint8_t pin)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Dne 26. ledna 2014 19:28 Jan Půhoný <konference na puhy.cz> napsal(a):
>>>>>
>>>>> 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.
>>>>>>
>>>>>> Jak předpokládal wek, strávil jsem s tím dost času ...
>>>>>>
>>>>>> Teď jsem narazil na pěknou knihovnu pro dallas 1 wire (např DS1820
>>>>>> teplotní čidla):
>>>>>>
>>>>>> https://github.com/ideras/pic-onewire-library
>>>>>>
>>>>>> Nerozumím ale definici portu, jak si to představují? Je tam tento
>>>>>> zápis, kterému úplně nerozumím,
>>>>>>
>>>>>> #define PIN_TO_BITMASK(pin)      (1 << pin)
>>>>>>
>>>>>> // Platform specific I/O definitions
>>>>>> #define IO_REG_TYPE uint8_t
>>>>>> #define DIRECT_READ(port, mask)         (((*(port)) & (mask)) ? 1 : 0)
>>>>>> #define DIRECT_MODE_INPUT(ddr, mask)   (*(ddr)) |= (mask)
>>>>>> #define DIRECT_MODE_OUTPUT(ddr, mask)  (*(ddr)) &= ~(mask)
>>>>>> #define DIRECT_WRITE_LOW(port, mask)   (*(port)) &= ~(mask)
>>>>>> #define DIRECT_WRITE_HIGH(port, mask)  (*(port)) |= (mask)
>>>>>>
>>>>>> to mám za "port" napsat třeba PORTE2 a mask = 0b00000010 ? nebo jak
>>>>>> to chápat?
>>>>>>
>>>>>> Bohužel žádný příklad u té knihovny není...
>>>>>>
>>>>>> Díky za případné rady.
>>>>>>
>>>>>> Honza Půhoný
>>>>>>
>>>>>>
>>>>>> 2014-01-17 Jaromir Sukuba <jarin.hw na gmail.com>
>>>>>>
>>>>>> PIC18F4550 je asi najexotickejsi a najmenej kompatibilny z rady
>>>>>>> PIC18F.
>>>>>>> Skusil by som sa pozriet na PIC18F4520 (stary, ale prevereny typ),
>>>>>>> pripadne 18F45K20 (novsi, lacnejsi, ale iba do 3,6V) alebo 18F45K22
>>>>>>> (este novsi, o nieco drahsi - ale lacnejsi nez 18F4520 - ale ide do
>>>>>>> 5,5V). Vo vsetkych troch pripadoch mozete nahradit 45 cislom 46, 44
>>>>>>> alebo 43 a dostanete modely s mensou alebo vacsou FLASH.
>>>>>>> Pripadne sa pozrite na PIC16F1517/1519 (tieto su moje oblubene),
>>>>>>> 1937/1934.
>>>>>>> Nieco sa da vybrat aj tu
>>>>>>> http://www.microchip.com/maps/microcontroller.aspx alebo si skuste
>>>>>>> pofiltrovat v nejakom katalogu, trebars u Farnella alebo Mousera.
>>>>>>>
>>>>>>> Inak, 16F877A bude fungovat tiez s XC8 kompilatorom, ale s tymito
>>>>>>> novsimi modelmi mate viac pamate "na minanie" a hlavne - nielen PORT,
>>>>>>> ale LAT aj PORT registre, velmi sikovna vec. Periferie su inak
>>>>>>> defakto
>>>>>>> zhodne s PIC16Fxxx, ale maju niektore pridane vlastnosti, ktore su
>>>>>>> ale
>>>>>>> defaultne vypnute (namatkou - inverzia signalov USARTu, moznost
>>>>>>> pouzivania 16-bitoveho BRG registra). Trebars inicializacia USART-u
>>>>>>> alebo SPI, ak si spominam spravne, je identicka s radou 16Fxxx ak
>>>>>>> nepouzivate tie vylepsenia. Kazdopadne je lepsie to porovnat v
>>>>>>> datasheetoch.
>>>>>>>
>>>>>>>
>>>>>>> 2014/1/17 Jan Půhoný <konference na puhy.cz>:
>>>>>>> > hmm, diky moc, samozrejme je to ono ...blb jsem spis ja a pro oci
>>>>>>> nevidim
>>>>>>> > :-) Už mi to bliká ....
>>>>>>> >
>>>>>>> > Jeste se dovolim zeptat jak je to s knihovnami pro tu 16F řadu, já
>>>>>>> tam budu
>>>>>>> > muset dát zpátky asi ten PIC 16F877A protože na USB Vreg vývodu
>>>>>>> 18F4550  mám
>>>>>>> > zapojeny data od DS1302 RTC ... jinak to pinově sedí, ale tohle je
>>>>>>> trochu
>>>>>>> > problém :-) BTW: existuje něco z 18F řady co by 100% pinově sedělo
>>>>>>> s
>>>>>>> > PIC16F877A - nic podobnějšího než 18F4550 jsem nenašel. Mám tam
>>>>>>> zapojený
>>>>>>> > všechny vývody...
>>>>>>> >
>>>>>>> > Je něco vyzkoušeného pro LCD displej nebo 1wire dallas čidla?
>>>>>>> >
>>>>>>> > budou fungovat ty 18 knihovny pro 16 řadu ?
>>>>>>> >
>>>>>>> > Díky.
>>>>>>> >
>>>>>>> > Honza Půhoný
>>>>>>> >
>>>>>>> >
>>>>>>> > 2014/1/17 Jaromir Sukuba <jarin.hw na gmail.com>
>>>>>>> >>
>>>>>>> >> 2014/1/17 Jan Půhoný <konference na puhy.cz>:
>>>>>>> >> > #define _XTAL_FREQ=1000000
>>>>>>> >>
>>>>>>> >> Zmente na
>>>>>>> >> #define _XTAL_FREQ 1000000
>>>>>>> >>
>>>>>>> >> Tuto chybu mal Vas prvy zdrojak a ja blb som to po Vas vcera
>>>>>>> >> skopiroval bez toho, aby som to aj skusil skompilovat :-)
>>>>>>> >> _______________________________________________
>>>>>>> >> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>> >> Hw-list na list.hw.cz
>>>>>>> >> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>> > Hw-list na list.hw.cz
>>>>>>> > http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>> >
>>>>>>> _______________________________________________
>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>> Hw-list na list.hw.cz
>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140127/547213e2/attachment-0001.html>


Další informace o konferenci Hw-list