Re: Mikro C PIC - string - problém

Andrej Jancura aj.hwlist na gmail.com
Pondělí Leden 27 18:02:46 CET 2014


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


Další informace o konferenci Hw-list