Re: Mikro C PIC - string - problém

Jan Půhoný konference na puhy.cz
Pondělí Leden 27 17:08:15 CET 2014


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
>>
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140127/f4bc0eaf/attachment-0001.html>


Další informace o konferenci Hw-list