Mikro C PIC - string - problém
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Leden 27 19:30:00 CET 2014
Ne, proste vyvorit promennou:
struct OneWire ow = {0};
(to nulovani asi nepovinne ale radsi to delam)
a ukazatel &ow predat jako parametr. Predpokladam, ze funkce Init si do
ni ulozi nastaveni portu a pripadne vyhleda zarizeni a ulozi si ID, nebo
na to bude jina funkce, to asi najdete v dokumentaci.
Nejaky vzor zdrojaku, jak ty funkce pouzit se neda najit? To byva
nejjednodussi cesta.
Dne 27.1.2014 19:24, Jan Půhoný napsal(a):
> struct OneWire
> {
> uint8_t bitmask;
> volatile IO_REG_TYPE *port; //IO Port Register
> volatile IO_REG_TYPE *ddr; //Data Direction Register
>
> #if ONEWIRE_SEARCH
> // global search state
> unsigned char ROM_NO[8];
> uint8_t LastDiscrepancy;
> uint8_t LastFamilyDiscrepancy;
> uint8_t LastDeviceFlag;
> #endif
> };
>
>
> takže to přepsat v té definici struktury?
>
>
>
>
> Dne 27. ledna 2014 19:22 Jaroslav Buchta <jaroslav.buchta na hascomp.cz
> <mailto:jaroslav.buchta na hascomp.cz>> napsal(a):
>
> Ukazatel na instanci struktury OneWire ?
> Podivejte se, jak je struktura definovana. IMHO to bude struktura
> pro ulozeni parametru a stavu rozhrani.
>
> Dne 27.1.2014 18:57, Jan Půhoný napsal(a):
>> 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
>> <mailto: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
>> <mailto: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 <mailto: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
>> <mailto: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
>> (structOneWire*this,volatileIO_REG_TYPE*port,volatileIO_REG_TYPE*ddr,uint8_tpin)
>>
>>
>>
>>
>>
>> Dne 26. ledna 2014 19:28 Jan Půhoný
>> <konference na puhy.cz <mailto: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
>> <mailto: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
>> <mailto: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
>> <mailto:jarin.hw na gmail.com>>
>> >>
>> >> 2014/1/17 Jan Půhoný
>> <konference na puhy.cz
>> <mailto: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 <http://www.HW.cz>
>> >> Hw-list na list.hw.cz
>> <mailto:Hw-list na list.hw.cz>
>> >> http://list.hw.cz/mailman/listinfo/hw-list
>> >
>> >
>> >
>> >
>> _______________________________________________
>> > HW-list mailing list - sponsored by
>> www.HW.cz <http://www.HW.cz>
>> > Hw-list na list.hw.cz
>> <mailto:Hw-list na list.hw.cz>
>> > http://list.hw.cz/mailman/listinfo/hw-list
>> >
>> _______________________________________________
>> HW-list mailing list - sponsored by
>> www.HW.cz <http://www.HW.cz>
>> Hw-list na list.hw.cz
>> <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> <http://www.HW.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> <http://www.HW.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> <http://www.HW.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> <http://www.HW.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored bywww.HW.cz <http://www.HW.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> ------------------------------------------------------------------------
> <http://www.avast.com/>
>
> Tato zpráva neobsahuje viry ani jiný škodlivý kód -avast!
> Antivirus <http://www.avast.com/> je aktivní.
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz <http://www.HW.cz>
> Hw-list na list.hw.cz <mailto: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
---
Tato zpráva neobsahuje viry ani jiný škodlivý kód - avast! Antivirus je aktivní.
http://www.avast.com
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140127/d4bc60ef/attachment.html>
Další informace o konferenci Hw-list