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