 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Čet Nov 03, 2005 6:57 pm Naslov sporočila: |
|
|
Za pretvorbo med različnimi formati se v C-ju uporabljajo tipi spremenljivk v oklepajih.
Ker TMR1L sprejme 8 bitno število, to narediš tako:
Koda: |
TMR1L = (unsigned char)(timer_setupinv) |
|
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Čet Nov 03, 2005 7:27 pm Naslov sporočila: |
|
|
NeoTO, odvisno od prevajalnika sicer, a lahko s tem samo dodas tip, se vedno pa bos dobil warning, ker bo vrednost vecja kot obseg spremenljivke. |
|
Nazaj na vrh |
|
 |
. Neznanec

Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Čet Nov 03, 2005 10:50 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Pet Nov 04, 2005 12:59 am Naslov sporočila: |
|
|
... ce bi imel tako v deklaraciji funkcije kot v deklaraciji tipa spremenljivke, ki jo podajas kot parameter funkciji, void* (ali karkoli drugega). Ce prevajalnik to podpira, uporabi za kompatibilnost z vsemi tipi ne glede na spremenljivko "function overloading" (Google za vec informacij o tej temi). Ce prevajalnik overloadanja funkcij ne podpira, ti preostane le to, da tip kazalca prej izenacis s tistim v deklaraciji funkcije. S tem bos zapravil pomnilnik v dolzini enega kazalca, bo pa brez warningov. Alternativa temu so manj striktni warningi (spet ce prevajalnik to podpira). Sam se odloci kaj bi rad.
Vprasanje je ali ima smisel pisati zelo univerzalno kodo za en majhen mikrokontroler in za en sam projekt - sam sem zagovornik assemblerja in optimizacije glede na problem, ne pa splosnih resitev - te pridejo v postev tam, kjer ni prav nobenega bonusa zaradi (dobrega) izkoristka platforme (= pri mikrokontroletrckih bolj redko, ce sploh). Visjenivojsko kodo vidim v tem primeru bolj kot ljudem razumljivo predstavitev resitve, ki jo potem implementira vsak po svoje (glede na lastnosti platforme), ne kot "must have". |
|
Nazaj na vrh |
|
 |
. Neznanec

Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Pet Nov 04, 2005 8:39 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Sob Nov 05, 2005 11:42 am Naslov sporočila: |
|
|
Se tretjic, izenaci oba tipa, kot ti je to predlagal NeoTO skoraj en teden nazaj. Ce mora tabela na vsak nacin biti iz longov, CRC koda pa operirati na bajtih, potem naredi ali parameter CRC funkciji tudi pointer na strukturo (in potem dodaj lokalno unsigned char* znotraj CRC funkcije in ji pripisi vrednost parametra), ali pa pred klicem CRC funkcije dodaj novo unsigned char * spremenljivko in ji pripisi vrednost tistega pointerja na strukturo, tako da bo CRC ze dobila unsigned char *. V obeh primerih bos zapravil isto kolicino - za en pointer (2 bajta ?) - RAMa in ne bi smel imeti nobenih warningov. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|