[elektro] roppant kezdő C kérdés

Skandar Graun sgraun at gmail.com
Fri Apr 9 18:12:31 CEST 2010


Köszönöm. Az érdekes, hogy ezek példaprogramok részletei. :)
Ami érdekes: jelenleg így elfogadja a nullát is a string közepében.
A char - unsigned char probléma bejött.
Ellenben nem fogadta el a [] nélkül a mytextet. Akkor hibaüzenetek jöttek.
A newline maradt. :(

2010/4/9 hg12345 <hg12345 at freemail.hu>:
> Hi! a tömb neve egyben a cime is, ha nem teszed ki a [] jelzést akkor pointerigy elegendő a mytext, a sizeof biztos int -ad vissza, igy tegyél elé a (unsigned char)A PIC24 sorozatnál char változókat csak akkor használj, ha lényeges. Helyet és teljesítményt nem spórolsz vele.Használj int vagy short-t. (Ezek 16 bitesek)
>
> Skandar Graun <sgraun at gmail.com> írta:
>>A deklarációt köszönöm, ki fogom próbálni.
>>A hibaüzenetekkel kapcsolatban igazad van, bocsánat.
>>Az első hibaüzenet sora:
>>A felhasznált változó:
>>const char mytext[] =  "   PIC24H Demo  ";
>>
>>A függvény:
>>
>>void puts_lcd( unsigned char *data, unsigned char count )
>>{
>>   while ( count )
>>{
>>lcd_data( *data++ );
>>count --;
>>}
>>}
>>
>>Erre jön a felhasználás:
>>
>>puts_lcd( (char*) &mytext[0], sizeof(mytext) -1 );
>>
>>
>>Erre a sorra jött a warning:
>>
>>lv24.c:34: warning: pointer targets in passing argument 1 of
>>&#39;puts_lcd&#39; differ in signedness
>>
>>A másodikra nincs mit írnom, a forrásnyelvi utolsó sora a hibaüzenet
>>sora, akárhány entert nyomok a végére.
>>
>>
>>
>>
>>
>>vajk fekete <halaloszto at yahoo.co.uk> írta (2010. április 9. 17:31):
>>> azert a hibat ado sorokat magukat is betehetned a levelbe :-)
>>>
>>> a stringkonstanst megirhatod igy: "hell\x04 vil\x01g"
>>>
>>> a \x utan hexaban irhatsz byteot.
>>>
>>> arra vigyazz, hogy c-ben a 0-as byte a string vege, ha a kozepebe teszel nullat, minden fuggveny ugy fogja venni, hogy ott vege van.
>>>
>>> a hibauzeneteidre azt tippelem, hogy s1=s2 ertekadast csinaltal. lehet, csak nem azt jelenti mint elsore hinnenk.
>>>
>>> a string neve az tulkepp egy pointer az elso betujere. ennek megfeleloen a fenti ertekadas az elso pointert beallitja hogy oda mutasson, ahova a masodik mutat.
>>>
>>> vajk
>>>
>>>
>>>
>>>
>>>
>>> ________________________________
>>> From: Skandar Graun <sgraun at gmail.com>
>>> To: elektro at tesla.hu
>>> Sent: Fri, 9 April, 2010 17:11:57
>>> Subject: [elektro] roppant kezdő C kérdés
>>>
>>> Sziasztok!
>>>
>>> Alakulgat a C tanulásom, de a basic tudásom implementálása akadályokba ütközik.
>>> Épp az LCD ékezetes betűit pakolom általfelé, de a szokásos
>>> deklarációs problémába ütköztem.
>>>
>>> Az LCD-re ki akarom íratni a következő szöveget: "Helló világ"
>>> Ebben ugye a két ékezetes betű nem szerepel az LCD karakterkészletében.
>>> A megszokott karakterkészletemet sikerült beletolnom az LCD-be.
>>> Ha közvetlen karakterkivitellel beírom, akkor működik.
>>> A CG_adress 0-7-ig címen vannak.
>>> Basicban ilyenkor deklaráltam egy stringet, ami így néz ki:
>>> "Hell",4," vil",1,"g "   , ahol a 4 az "ó" megfelelője, az 1 pedig az
>>> "á" betűé.
>>> Ezt a fajta deklarációt a C viszont nem veszi jó néven.
>>> Hogy kellene kinéznie?
>>> A másik, hogy ad két fura warning üzenetet.
>>> lcd.c:239: warning: pointer targets in passing argument 1 of
>>> &#39;puts_lcd&#39; differ in signedness
>>> Ezt nem értem és nem találom a help listában.
>>> lv24.c:67:2: warning: no newline at end of file
>>> Ez meg nem igaz.
>>>
>>> PIC30-as fordító, 24-es procira.
>>>
>>> Előre is köszi a segítséget.
>>>
>>> -----------------------------------------
>>>          elektro[-flame|-etc]
>>>
>>>
>>>
>>>
>>> -----------------------------------------
>>>          elektro[-flame|-etc]
>>
>>-----------------------------------------
>>          elektro[-flame|-etc]
> -----------------------------------------
>          elektro[-flame|-etc]
>



More information about the Elektro mailing list