www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Pointerji v C
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Čet Nov 03, 2005 6:57 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Čet Nov 03, 2005 7:27 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Čet Nov 03, 2005 10:50 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pet Nov 04, 2005 12:59 am    Naslov sporočila:   Odgovori s citatom

... 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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Pet Nov 04, 2005 8:39 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Sob Nov 05, 2005 11:42 am    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
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