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 

Interupt RDA ne deluje. (RS232)

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



Pridružen-a: Čet 30 Okt 2008 21:52
Prispevkov: 161
Aktiv.: 0.76
Kraj: Celje

PrispevekObjavljeno: Sob Mar 05, 2011 3:15 pm    Naslov sporočila:  Interupt RDA ne deluje. (RS232) Odgovori s citatom

Pozdravljeni,

hočem napisati program kateri bo bral znake s pomočjo prekinitvene rutine. Vendar rutina int_rda ne deluje. Če napišem program v main-u da mi prebere znak getc();, mi ga normalno, če pa uporabim prekinitev pa ne deluje. Zamenjal sem že dve verzije CCS C Compiler-ja dva uC-ja in nič uspeha. Vedno isto. Uporabljam:

-PIC 16F877A
-PIC 18F452
-PCW V4.093
-ICD2

Prosim še za kakšno idejo.

Koda:

#include "C:\Moji Dokumenti\Pic\main.h"
char buffer;

#int_RDA
void  RDA_isr(void)
{
buffer=getc();
}

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2|ADC_TAD_MUL_0);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);

while(1){
printf("Znak je: %c \n"buffer);
delay_ms(100);
}
}

_________________
Victims - aren't we all...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 38.07
Kraj: Kranj - struževo

PrispevekObjavljeno: Sob Mar 05, 2011 4:13 pm    Naslov sporočila:   Odgovori s citatom

Vsak kompajler ima drugačen način, kako mu definiraš Interrupt rutino.
Tole tvoje ti verjetno prevede kot navadno proceduro, ki pa ni od nikoder klicana.

Preštudiraj HELP od izbranega prevajalnika - notri točno piše sintaksa, da prepozna zahtevo, da rutino obesi na interrupt.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
mk0388
Član
Član



Pridružen-a: Čet 30 Okt 2008 21:52
Prispevkov: 161
Aktiv.: 0.76
Kraj: Celje

PrispevekObjavljeno: Sob Mar 05, 2011 5:50 pm    Naslov sporočila:   Odgovori s citatom

aly je napisal/a:

Preštudiraj HELP od izbranega prevajalnika - notri točno piše sintaksa, da prepozna zahtevo, da rutino obesi na interrupt.


Relevant Interrupts:

INT_RDA
Interrupt fires when the receive data available.

INT_TBE
Interrupt fires when the transmit data empty.

_________________
Victims - aren't we all...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



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

PrispevekObjavljeno: Sob Mar 05, 2011 6:15 pm    Naslov sporočila:   Odgovori s citatom

"#use rs232" imaš definiran? Preveri tudi, če CCS vklopi PEIE bit.
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mk0388
Član
Član



Pridružen-a: Čet 30 Okt 2008 21:52
Prispevkov: 161
Aktiv.: 0.76
Kraj: Celje

PrispevekObjavljeno: Sob Mar 05, 2011 6:39 pm    Naslov sporočila:   Odgovori s citatom

gumby je napisal/a:
"#use rs232" imaš definiran?


Koda:
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

_________________
Victims - aren't we all...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.01
Kraj: Yogyakarta

PrispevekObjavljeno: Sob Mar 05, 2011 9:48 pm    Naslov sporočila:   Odgovori s citatom

v mplab c prevajalniku definiraš interupt rutino kot

void interrupt isr(void)
{}

če pa ima uC Hi in Lo prioriti interupte pa gre to spet malenkost drugače Very Happy

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
gumby
Član
Član



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

PrispevekObjavljeno: Sob Mar 05, 2011 9:56 pm    Naslov sporočila:   Odgovori s citatom

Tole je CCS in je malo drugačna sintaksa. Definirano je prav...
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jurijznidersic
Član
Član



Pridružen-a: Čet 26 Feb 2009 18:00
Prispevkov: 25
Aktiv.: 0.12
Kraj: Brežice

PrispevekObjavljeno: Sob Mar 12, 2011 9:15 am    Naslov sporočila:   Odgovori s citatom

Verjetno nimaš omogočene prekinitve v registru INTCON (interrupt configuration)
prekinitev lahko prožiš na več različnih načinov in to nastaviš s tem ragistrom.
Preberi si v datasheetu o tem in ti bo jasno.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mk0388
Član
Član



Pridružen-a: Čet 30 Okt 2008 21:52
Prispevkov: 161
Aktiv.: 0.76
Kraj: Celje

PrispevekObjavljeno: Sob Mar 12, 2011 10:04 am    Naslov sporočila:   Odgovori s citatom

Pozdravljeni,

pravijo da v tretje gre rado, pa še res je. Po tretji menjavi compilerja (V4.084) mi je program uspelo zagnati. Nisem naredil nič drugega kot to, da sem omenjeni program zagnal v tretji verziji compiler-ja in sem brez problemov bral katere znake pošiljam s pomočjo prekinitvene rutine.

Hvala vsem za ideje.

LP Mitja

_________________
Victims - aren't we all...
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
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: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group