Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Tor Mar 25, 2008 2:36 pm Naslov sporočila: uVision in code arhitect |
|
|
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 |
|
 |
PC_Master Član


Pridružen-a: Pon 17 Mar 2008 20:10 Prispevkov: 319 Aktiv.: 1.52 Kraj: Domžale , Blizu Ljubljane , Poštna 1230
|
Objavljeno: Tor Mar 25, 2008 3:01 pm Naslov sporočila: |
|
|
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 |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Tor Mar 25, 2008 4:05 pm Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4769 Aktiv.: 20.13 Kraj: Kobarid
|
Objavljeno: Tor Mar 25, 2008 4:20 pm Naslov sporočila: |
|
|
Mislim, da lahko mirno brises oni "using 1" _________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Tor Mar 25, 2008 4:28 pm Naslov sporočila: |
|
|
Sem poizkusil, vendar problem ostaja nespremenjen  |
|
Nazaj na vrh |
|
 |
PC_Master Član


Pridružen-a: Pon 17 Mar 2008 20:10 Prispevkov: 319 Aktiv.: 1.52 Kraj: Domžale , Blizu Ljubljane , Poštna 1230
|
Objavljeno: Tor Mar 25, 2008 5:15 pm Naslov sporočila: |
|
|
Kaj pa
interrupt using 1
brez ene enke? |
|
Nazaj na vrh |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Tor Mar 25, 2008 5:29 pm Naslov sporočila: |
|
|
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 |
|
 |
PC_Master Član


Pridružen-a: Pon 17 Mar 2008 20:10 Prispevkov: 319 Aktiv.: 1.52 Kraj: Domžale , Blizu Ljubljane , Poštna 1230
|
Objavljeno: Tor Mar 25, 2008 6:02 pm Naslov sporočila: |
|
|
Sem samo ugibal
Sem pač hotel pomagati , heh pri elektroniki ne moreš ugibati... ali pač. |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4769 Aktiv.: 20.13 Kraj: Kobarid
|
Objavljeno: Tor Mar 25, 2008 6:10 pm Naslov sporočila: |
|
|
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 |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Tor Mar 25, 2008 8:35 pm Naslov sporočila: |
|
|
PC_mater : pri elektroniki NE pri programiranju DA
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 |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Tor Mar 25, 2008 8:44 pm Naslov sporočila: |
|
|
Preberi navodila (Cx51 Compiler User’s Guide) - predlagam stran 125
Drugic pa kar samoiniciativno RTFM (read the friendly manual), namesto da cakas na odgovor tukaj  _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Čet Mar 27, 2008 11:57 pm Naslov sporočila: |
|
|
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 |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Pet Mar 28, 2008 8:24 am Naslov sporočila: |
|
|
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 |
|
 |
krupivnk Član

Pridružen-a: Tor 27 Feb 2007 20:45 Prispevkov: 335 Aktiv.: 1.50 Kraj: Lj
|
Objavljeno: Sre Apr 02, 2008 9:48 pm Naslov sporočila: |
|
|
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 |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Čet Apr 03, 2008 1:06 am Naslov sporočila: |
|
|
Ni mi jasno kaj bi rad dosegel, saj ti je pretezko napisati kaj sporoci prevajalnik 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 |
|
 |
|