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 

V prekinitvi ne poveča spremenljivke [AVR]

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



Pridružen-a: Pet 29 Okt 2004 13:29
Prispevkov: 386
Aktiv.: 1.63
Kraj: Hrastnik

PrispevekObjavljeno: Čet Jul 30, 2009 8:04 pm    Naslov sporočila:  V prekinitvi ne poveča spremenljivke [AVR] Odgovori s citatom

Pozdravljeni!

Ima kdo kakšno idejo, zakaj mi v naslednjem programu ne povečuje spremenljivke xx v prekinitvi za INT0? INT0 proži, preverjeno, vendar sprememba spremenljivke ni vidna v ostalem programu, kot da si INT0 naredi svojo notranjo spremenljivko xx. Sad

Koda:
#include <io.h>
#include <interrupt.h>
#include "macros.h"

unsigned int xx = 0;

void init_devices(void)
{
   DDRD = 0xE0;
   PORTD = 0xFF;
   cli();
   MCUCR = 0x02; //enable falling edge INT0
   GICR = 0x40; //enable INT0
   sei();
}

ISR (INT0_vect)
{   
   xx++;
}

int main(void)
{
   //unsigned int n;
   init_devices();
   while(1)
   {
      if(xx > 30000)
      {
         CBI(PORTD, 7);
      }
      asm("nop");
      //xx++;
   }

   return 1;
}


Krmilnik: ATmega8
Okolje: AVRStudio + WinAVR

Hvala za vsako pomoč!

LP
Slemi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo AIM - AOL Instant - naslov MSN Messenger - naslov
silvo_v
Član
Član



Pridružen-a: Pon 11 Jul 2005 22:00
Prispevkov: 146
Aktiv.: 0.62
Kraj: Domžale

PrispevekObjavljeno: Čet Jul 30, 2009 8:30 pm    Naslov sporočila:   Odgovori s citatom

Poskusi takole:

volatile unsigned int xx=0;

Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Slemi
Član
Član



Pridružen-a: Pet 29 Okt 2004 13:29
Prispevkov: 386
Aktiv.: 1.63
Kraj: Hrastnik

PrispevekObjavljeno: Čet Jul 30, 2009 9:09 pm    Naslov sporočila:   Odgovori s citatom

Že boljše dela!

Hvala!
Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo AIM - AOL Instant - naslov MSN Messenger - naslov
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
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group