Re: Mikro C PIC - string - problém
Jaromir Sukuba
jarin.hw na gmail.com
Čtvrtek Leden 16 22:02:12 CET 2014
Ja by som to urobil takto:
#include <xc.h>
#define _XTAL_FREQ=1000000
void main(void)
{
TRISD = 0;
while(1)
{
LATD=0xFF;
__delay_ms(200);
LATD=0x00;
__delay_ms(200);
}
}
Ten Vas zdrojak je strasne ukecany, nemam to rad. Zdrojak som
netestoval, nemam poruke HW na ktorom by som to skusil, ale tam snad
nema co nefungovat.
A pokial konfiguracne bity nenastavujete mimo MPLAB-u, tak na zaciatok
(ja zvyknem hned po includnuti xc.h) dal toto:
#pragma config PLLDIV = 1
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 1
#pragma config FOSC = INTOSC_HS
#pragma config PWRT = OFF
#pragma config BOR = ON
#pragma config BORV = 3
#pragma config VREGEN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config STVREN = ON
#pragma config LVP = OFF
#pragma config XINST = OFF
Co nastavi interny oscilator (defaultne bezi na 1MHz, nechal som ho v
defaultnom nastaveni da sa preprnut v registri OSCCON - preto som Vam
zmenil define na zaciatku) a vypne watchdog a LVP.
18F4550 je jeden z tych 18F-kovych MCU, ktore maju zlozitejsiu
konfiguraciu hodin, kvoli USB.
Konfiguraky si mozete zmenit : Window->PicMemory Views->Configuration
bits, vyskoci na Vas okno, kde si naklikate co potrebujete a ono to
vygeneruje tamtie mnemonicke skratky (ktore si naprikald ja bez toho
nepamatam) do output window-u aj s komentarmi a odtial si ich
skopirujete do zdrojaku.
Vsimnite si ze som na kmitanie vyvodmi pouzil LAT registre. V tomtp
pripade by to bez zavahania fungovalo aj s PORT registrami, ale skuste
si nieco pohladat o RMW problemoch.
2014/1/16 Jan Půhoný <konference na puhy.cz>:
> Já jsem právě použil průvodce na vytvoření projektu, proto mě překvapilo, že
> to nejde přeložit...díky moc za Vači trpělivost ...
>
> v main.c mám toto:
>
>
> /******************************************************************************/
> /* Files to Include
> */
> /******************************************************************************/
>
> #if defined(__XC)
> #include <xc.h> /* XC8 General Include File */
> #elif defined(HI_TECH_C)
> #include <htc.h> /* HiTech General Include File */
> #elif defined(__18CXX)
> #include <p18cxxx.h> /* C18 General Include File */
> #endif
>
> #if defined(__XC) || defined(HI_TECH_C)
>
> #include <stdint.h> /* For uint8_t definition */
> #include <stdbool.h> /* For true/false definition */
>
> #endif
>
> #include "system.h" /* System funct/params, like osc/peripheral
> config */
> #include "user.h" /* User funct/params, such as InitApp */
>
>
>
> #define _XTAL_FREQ=20000000
>
>
>
> /******************************************************************************/
> /* User Global Variable Declaration
> */
> /******************************************************************************/
>
> /* i.e. uint8_t <variable_name>; */
>
> /******************************************************************************/
> /* Main Program
> */
> /******************************************************************************/
>
> void main(void)
> {
> /* Configure the oscillator for the device */
> ConfigureOscillator();
>
> /* Initialize I/O and Peripherals for application */
> InitApp();
>
> /* TODO <INSERT USER APPLICATION CODE HERE> */
>
> while(1)
> {
>
> PORTD=0xFF;
>
> __delay_ms(1);
>
> PORTD=0x00;
>
> __delay_ms(1);
>
> }
>
> }
>
>
>
>
>
>
>
> Dne 16. ledna 2014 19:38 Jaromir Sukuba <jarin.hw na gmail.com> napsal(a):
>
>> Treba mat includnuty xc.h
>>
>> Idealne, ukazte cely zdrojak. Ked sa trochu zorientujete v tychto
>> veciach, zvysok bude jednoduchy, ved je to C-cko.
>>
>> 2014/1/16 Jan Půhoný <konference na puhy.cz>:
>> > ano pic.h mám includnutý, v přeportování mi brání asi jen lenost :-)
>> >
>> > je to makro, ale nefunguje to ať tam ; je nebo není ...
>> >
>> > Dne 16. ledna 2014 17:35 Andrej Jancura <aj.hwlist na gmail.com> napsal(a):
>> >
>> >> Dobry vecer,
>> >>
>> >> skusim poradit len tak, bez pustenia xc8...
>> >>
>> >> Mate includnuty subor pic.h?
>> >>
>> >> Nie je ten delay nahodou makro? takze skuste si to najst v tom include
>> >> a
>> >> ked chcete skusit este rychlejsie, skuste zmazat tu ";"...
>> >>
>> >> A.
>> >>
>> >> p.s: co Vam brani v preportovani tych funkcii z pic18 do pic16?! A ked
>> >> uz
>> >> pisem, tak sa spytam, ze preco pri tych stringoch co ste tu spominal
>> >> tiez
>> >> nepouzijete nieco v duchu print(const unsigned char *p_string)?
>> >>
>> >>
>> >> 2014/1/16 Jan Půhoný <konference na puhy.cz>
>> >>>
>> >>> Díky za reakci. Samozřejmě jsem se překlepl v emailu.
>> >>>
>> >>> 53: __delay_ms(1); - normálně mi to zmodrá jako funkce, ale při
>> >>> překladu
>> >>> mi to vyhodí:
>> >>>
>> >>> main.c:53: error: (195) expression syntax
>> >>> main.c:53: error: (187) too few function arguments
>> >>> main.c:53: error: (194) ")" expected
>> >>> main.c:53: error: (195) expression syntax
>> >>> (908) exit status = 1
>> >>> make[2]: *** [build/C18_18F87K22/production/main.p1] Error 1
>> >>> make[1]: *** [.build-conf] Error 2
>> >>> make: *** [.build-impl] Error 2
>> >>>
>> >>> Co dělám blbě?
>> >>>
>> >>> Když řádek 53 zakomentuji, tak se to normálně přeloží ...
>> >>>
>> >>> Těmi knihovnami jsem myslel například lcd displej nebo dallas čidla -
>> >>> lcd
>> >>> displej jsem našel jen pro 18F řadu - nebo jsem slepý?
>> >>>
>> >>> H.
>> >>>
>> >>>
>> >>> Dne 16. ledna 2014 16:05 Jaromir Sukuba <jarin.hw na gmail.com>
>> >>> napsal(a):
>> >>>
>> >>>> Ja robim delay takto
>> >>>>
>> >>>> __delay_ms(123);
>> >>>> __delay_us(123);
>> >>>>
>> >>>> Asi mate iny manual nez ja
>> >>>> http://ww1.microchip.com/downloads/en/DeviceDoc/52053B.pdf ale na
>> >>>> strane 314 to mate.
>> >>>>
>> >>>> 2014/1/16 Jan Půhoný <konference na puhy.cz>:
>> >>>> > Tak jsem stáhnul MPLAB X a XC8 a zatím ani nerozblikám ledku.
>> >>>> > Naposledy jsem
>> >>>> > v tom dělal ještě v asembleru. Procesor jsem přepájel na
>> >>>> > PIC18F4550,
>> >>>> > protože
>> >>>> > jak jsem tak pochopil pro PIC16F a XC8 nejsou moc knihovny ...
>> >>>> >
>> >>>> > Ale nějak se nedaří...
>> >>>> >
>> >>>> > Proč proboha nefunguje tento zápis? Podle helpu by to mělo
>> >>>> > fungovat...
>> >>>> >
>> >>>> > __DelayMs(50); ?
>> >>>> >
>> >>>> > #define _XTAL_FREQ=20000000 před tím mám ....
>> >>>> >
>> >>>> > Vy v tom děláte?
>> >>>> >
>> >>>> > Díky.
>> >>>> >
>> >>>> >
>> >>>> >
>> >>>> > Dne 14. ledna 2014 16:30 Jaromir Sukuba <jarin.hw na gmail.com>
>> >>>> > napsal(a):
>> >>>> >
>> >>>> >> Za tu cenu (zadarmo) mate XC8 kompilator, nie je obmedzeny na
>> >>>> >> velkost
>> >>>> >> kodu, k tomu MPLAB (alebo MPLABX, podla chuti).
>> >>>> >> Mozete to pouzivat s PIC16 alebo PIC18, ja by som radil skor
>> >>>> >> PIC18;
>> >>>> >> alebo
>> >>>> >> aspon PIC16F1xxx, ale nie PIC16Fxxx.
>> >>>> >>
>> >>>> >
>> >>>> >
>> >>>> > _______________________________________________
>> >>>> > 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ší informace o konferenci Hw-list