Re: Mikro C PIC - string - problém

Martin Persich persich na transcon.cz
Úterý Leden 14 10:01:32 CET 2014


V druhém souboru by měla být jen deklarace:
extern unsigned char prvni_r[];
extern unsigned char druhy_r[];

Počet prvků (délku bufferu) si musí program v "C" bohužel hlídat sám, není problém téměř cokoliv, kdekoliv přepsat mimo tento buffer ... :-( 
Jinak ten uvedený zápis jednotlivých prvků do bufferu v druhém souboru je dle mého v pořádku a v rámci možností (tj. jazyka "C") korektní.

Martin. persich na transcon.cz

  ----- Original Message ----- 
  From: Jan Půhoný 
  To: HW-news 
  Sent: Tuesday, January 14, 2014 9:37 AM
  Subject: Re: Mikro C PIC - string - problém


  Díky všem za odpovědi.


  Zdá se, te strcpy funguje stejně jak s & tak bez &. Ještě to ale trochu zlobí, když do prvni_r a druhy_r šahám přes takovýto zápis


  extern unsigned char prvni_r[17]="                ";
  extern unsigned char druhy_r[17]="                ";


  prvni_r[8]=jednotky;
  prvni_r[9]=desitky;
  prvni_r[10]=':';


  z jiného c souboru stejného projektu.


  V hlavním c souboru s main void mám definici takto:


  unsigned char prvni_r[17]="                ";
  unsigned char druhy_r[17]="                ";


  Jak korektně přistupovat ke stejným proměnným z různých c souborů projektu?


  Díky.


  Honza Půhoný





  Dne 13. ledna 2014 22:13 Martin Persich <persich na transcon.cz> napsal(a):

    A ještě jeden postřeh. Pokud se jedná o buffer pro 16-ti znakový LCD displej, tak pro použití funkce "strcpy()" je nezbytné, aby tento buffer měl délku 17 znaků (pro uložení ukončující "nuly" - '\0' ). Jinak dojde k nedefinovanému přepsání "následující" proměnné.
    Martin. persich na transcon.cz

      ----- Original Message ----- 
      From: Aleš Novák 
      To: HW-news 
      Sent: Monday, January 13, 2014 9:32 PM
      Subject: Re: Mikro C PIC - string - problém


      Nemelo by to byt spise takhle:
      stcrpy(prvni_r,"testovaci napis");

      Jmeno pole je samo o sobe pointer na jeho prvni polozku.

      Ales


      13. ledna 2014, 20:31:59, napsal jste:


           Zkuste stcrpy(&prvni_r,"testovaci napis");



            LK


            Dne 13.1.2014 19:53, Jan Půhoný napsal(a):
            Zdravím konferenci,

            mám tady takový lama problém v C (Mikro C pro PIC řady 16).

            V proměnné prvni_r mám znaky pro první řádek LCD displeje (pak to vypisuji přes Lcd_Out(1,1prvni_r); - to funguje.

            //definice

            unsigned char prvni_r[16];

            //editace znaků

            prvni_r[5] = 223;
            prvni_r[6] = 'C';
            prvni_r[7] ='  ';

            Lcd_Out(1,1prvni_r); //na pozici 5,6,7 mi to vypíše °C
            to funguje ok

            Proč ale nefunguje toto:

            prvni_r="testovaci napis"; 

            na tomto řádku to hází error: Assigning to non-lvalue

            Co s tím, abych tam mohl dávat jak celé řetězce a zároveň editovat jednotlivé znaky?

            Díky,

            Honza Půhoný


            _______________________________________________
            HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list  





      -- 
      S pozdravem,
       Aleš
       alesh.novak na email.cz 


--------------------------------------------------------------------------


      _______________________________________________
      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/20140114/cf13bc56/attachment.html>


Další informace o konferenci Hw-list