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 

uVision in code arhitect
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Tor Mar 25, 2008 2:36 pm    Naslov sporočila:  uVision in code arhitect Odgovori s citatom

Koda:
/***********************************************************************
DESC:    Timer 0 Interrupt Service Routine
RETURNS: Nothing
CAUTION: timers_init must be called first
         EA must be set to 1
************************************************************************/
void timers_isr0
  (
  void
  ) interrupt 1 using 1
{
  // reinitialize
  TH0 = 0x6F;
  TL0 = 0xFF;
} // timers_isr0

V code arhitektu sem generiral kodo(zgoraj je delček kode)za uporao timerja. Vendar ko to poskušam prevesti v hex mi prevajalnik ne prebavi tega: interrupt 1 using 1. zakaj? kakšen nasvet?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
PC_Master
Član
Član



Pridružen-a: Pon 17 Mar 2008 20:10
Prispevkov: 319
Aktiv.: 1.52
Kraj: Domžale , Blizu Ljubljane , Poštna 1230

PrispevekObjavljeno: Tor Mar 25, 2008 3:01 pm    Naslov sporočila:   Odgovori s citatom

Nisem expert ampak gotovo je to tako :

Koda:

/***********************************************************************
DESC:    Timer 0 Interrupt Service Routine
RETURNS: Nothing
CAUTION: timers_init must be called first
         EA must be set to 1
************************************************************************/
void timers_isr0
  (
  void
  )
 interrupt 1 using 1
{
  // reinitialize
  TH0 = 0x6F;
  TL0 = 0xFF;
} // timers_isr0
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Tor Mar 25, 2008 4:05 pm    Naslov sporočila:   Odgovori s citatom

Ne mislim da to nemore biti(ampak sem vseeno poizkusil).

Javi mi pa tako napako:
*** ERROR L121: IMPROPER FIXUP
MODULE: Blinky.obj (BLINKY)
SEGMENT: ABSOLUTE
OFFSET: 000BH
Program Size: data=11.0 xdata=0 code=216
Target not created

Če tisto vrstico odstranim mi prevede kodo... Vendar pa to potem seveda ni prekinitev Sad
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Član
Član



Pridružen-a: Čet 01 Jul 2004 11:18
Prispevkov: 4769
Aktiv.: 20.13
Kraj: Kobarid

PrispevekObjavljeno: Tor Mar 25, 2008 4:20 pm    Naslov sporočila:   Odgovori s citatom

Mislim, da lahko mirno brises oni "using 1"
_________________
Lep dan
Simon
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Tor Mar 25, 2008 4:28 pm    Naslov sporočila:   Odgovori s citatom

Sem poizkusil, vendar problem ostaja nespremenjen Confused
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
PC_Master
Član
Član



Pridružen-a: Pon 17 Mar 2008 20:10
Prispevkov: 319
Aktiv.: 1.52
Kraj: Domžale , Blizu Ljubljane , Poštna 1230

PrispevekObjavljeno: Tor Mar 25, 2008 5:15 pm    Naslov sporočila:   Odgovori s citatom

Kaj pa

interrupt using 1

brez ene enke?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Tor Mar 25, 2008 5:29 pm    Naslov sporočila:   Odgovori s citatom

Tudi to nebo šlo

BLINKY.C(92): error C141: syntax error near 'using', expected 'const'

poizkusil sem tudi samo z: using 1
Samo nevem a bo potem procesor prišel na to funkcijo če bo timer postavil zahtevo po prekinitvi?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
PC_Master
Član
Član



Pridružen-a: Pon 17 Mar 2008 20:10
Prispevkov: 319
Aktiv.: 1.52
Kraj: Domžale , Blizu Ljubljane , Poštna 1230

PrispevekObjavljeno: Tor Mar 25, 2008 6:02 pm    Naslov sporočila:   Odgovori s citatom

Sem samo ugibal Shocked

Sem pač hotel pomagati , heh pri elektroniki ne moreš ugibati... ali pač.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Član
Član



Pridružen-a: Čet 01 Jul 2004 11:18
Prispevkov: 4769
Aktiv.: 20.13
Kraj: Kobarid

PrispevekObjavljeno: Tor Mar 25, 2008 6:10 pm    Naslov sporočila:   Odgovori s citatom

Evo moj primir. Ta zagotovo deluje
prekinitvena rutina
Koda:
void timer1 (void) interrupt 3
{
vsebina
}

in se inicializacija
Koda:
TL1=0;
TH1=0x10,
ET1=1; //vklop timerja

_________________
Lep dan
Simon
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Tor Mar 25, 2008 8:35 pm    Naslov sporočila:   Odgovori s citatom

PC_mater : pri elektroniki NE pri programiranju DA Laughing

Hmm inicializirano imam enako(samo druge cifre v števcu). Samo ni mi najbolj jasno katera cifra mora biti za interrupt x. Najbolje bo da priložim celotno kodo:

Koda:

#include <REG936.H>         

int x=0;

void timers_isr0 ( void );
void timer0_init(void );

void main()
{
 
  timer0_init();
  EA =1;
  while(1)
  {
   
  }
}

/***********************************************************************
DESC:    Timer 0 Interrupt Service Routine
RETURNS: Nothing
CAUTION: timers_init must be called first
         EA must be set to 1
************************************************************************/
void timers_isr0 ( void ) interrupt 1
{
  x++;
  TH0 = 0x6F;
  TL0 = 0xFF;
}


void timer0_init( void )
{
  // configure timer 0
  TMOD &= 0xF0;
  TMOD |= 0x01;
  TAMOD &= 0xFE;

  // timer values
  TH0 = 0x6F;
  TL0 = 0xFF;

  // set timer 0 isr priority to 0
  IP0 &= 0xFD;
  IP0H &= 0xFD;

  // enable timer 0 interrupt
  ET0 = 1;

  // start timer 0
  TR0 = 1;
   
}
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: Tor Mar 25, 2008 8:44 pm    Naslov sporočila:   Odgovori s citatom

Preberi navodila (Cx51 Compiler User’s Guide) - predlagam stran 125 Wink

Drugic pa kar samoiniciativno RTFM (read the friendly manual), namesto da cakas na odgovor tukaj Exclamation

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Čet Mar 27, 2008 11:57 pm    Naslov sporočila:   Odgovori s citatom

Verjamem da sem nadležen in da mi hočeš pomagati tako da me usmerjaš(kar je najboljša pomoč) Vendar res nikjer ne najdem razloga zakaj mi noče prevesti tega programa. Tudi sporočilo o napaki(pripel sem ga zgoraj) je drugačno kot ponavadi. In več o tovrstni napaki nisem našel nikjer v c51 pdfju.
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 Mar 28, 2008 8:24 am    Naslov sporočila:   Odgovori s citatom

Naredi tako, kot je napsial Simon (tako je pravilno).

Moj odgovor se nanasa na implicitno vprasanje v tvojem zadnjem sporocilu pred mojim odgovorom (o stevilkah interruptov).

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
krupivnk
Član
Član



Pridružen-a: Tor 27 Feb 2007 20:45
Prispevkov: 335
Aktiv.: 1.50
Kraj: Lj

PrispevekObjavljeno: Sre Apr 02, 2008 9:48 pm    Naslov sporočila:   Odgovori s citatom

Koda:
#include <REG936.H>         

int x;
void main()
{
   
   TL1=0;
   TH1=0x10,
   ET1=1; //vklop timerja
 
  while(1)
  {

  }

}

void timer1 (void) interrupt 3
{
   x++;
}

Ne prevede mi niti tega(to je celotna koda)
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: Čet Apr 03, 2008 1:06 am    Naslov sporočila:   Odgovori s citatom

Ni mi jasno kaj bi rad dosegel, saj ti je pretezko napisati kaj sporoci prevajalnik Rolling Eyes Meni se identicna koda za MCU, z katerega imam ustrezen header file (REG936.H pac nimam) prevede brez pripomb.

Obcutek imam, da se delas norca iz pomoci, ki ti jo ponujajo clani foruma.

_________________
Ka ti bo pa torba ce si kupu kolo ?
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 -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group