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 

switch() in CCS

 
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
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.40

PrispevekObjavljeno: Sre Jun 17, 2009 9:52 pm    Naslov sporočila:  switch() in CCS Odgovori s citatom

Nekaj mi nagaja switch() funkcija, namreč pri 32-bitnih spremenljivkah upošteva samo spodnjih 16 bitov. Primer:
Koda:
int32 code32;

void use_code(void)
{
   switch(code32)
   {
      case 0xbb4400ff:
      case 0xbb4420df:
      case 0xbb4410ef:
      case 0xbb4430cf:
      case 0xbb4408f7:
      case 0xbb4428d7:
         output_high(PIN_C2);
         ...


Tule mi pin aktivira tudi pri vrednosti 0x1d4000ff

V helpu ne piše nič o tem, da bil switch() omejen na 16 bitov, compiler se tudi ne pritožuje. Gledal sem disassembly in tam dejansko samo spodnja dva bajta primerja...

bug?

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.24
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jun 18, 2009 12:05 am    Naslov sporočila:   Odgovori s citatom

Sem tudi jaz testiral. Imam CCS v4.088 in prav tako naredi samo za 16 bitov. Očitno je bug.

Mogoče velja vprašat na njihovem forumu Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-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
Stran 1 od 1

 
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: 498 dni


Powered by phpBB © 2001, 2005 phpBB Group