FAQ | Points | Add... | Recent posts | Search | Register | Log in


Zmienne typu STATIC


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> 51 Microcontrollers -> Zmienne typu STATIC
Author
Message
rtom
Poziom 16
Poziom 16


Joined: 03 Aug 2004
Posts: 334

Post#1 Post from the author of the topic 10 Sep 2004 18:30   

Zmienne typu STATIC


Co oznacz "static" przy dekalracji zmiennych
np. static unsigned char zmienna=0;
Jest cos takeigo np:
Code:

#include <sfr51.h>

void main ()                             
 {
//ustawienie parametrow przerwania od Timera 0 
  TMOD=0x01;
  TR0=1;
  ET0=1;
  IP=0x02; //najwyzszy priorytet dla przerwania od Timer'a 0

  EA=1;//globalne odblokowanie systemu przerwan

  P0=0x00;
  P1=0x00;
  P2=0x00;
  P3=0x00;
 
  while (1)
    {
         P1_0=1;
    }   
}


void TO_int(void) interrupt 1 using 1
{
  static unsigned char lstrob=0;
  lstrob++;
  if (lstrob==4)
  {   
    lstrob=0;
    P2_7=1;
   }
   TH0=0x00; TL0=0x00;
}

Dlaczego wartosc lstrob po kazdorazowym urochominiu przerwania(jedynie przy 1szym uruchomieniu) jest pamietana i nie zerowana (dopiero po spelnieniu warunku lstrob==4)?

Przeniesiono z Programowanie Ogólne. - arnoldziq
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 10 Sep 2004 18:30   





Back to top
   
ACULA
Poziom 23
Poziom 23


Joined: 11 Apr 2003
Posts: 3025
Location: Bydgoszcz

Post#2 10 Sep 2004 18:36   

Zmienne typu STATIC


Zmienna statyczna jest przypisana do stałego adresu w pamięci, tak długo jak długo trwa wykonywanie programu. Kiedy funkcja się kończy , adres nie zostaje zwolniony, a dalej jest przypisany do zmiennej. Przy następnym wykonywaniu funkcji zmienna będzie miała tą samą wartość a nie zostanie tworzona od nowa

Dlatego jest pamiętana ;)
Pozwala liczyć przerwania, bo gdyby była dynamiczna program przerwania nie był by zalezny od ilości wywołań.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> 51 Microcontrollers -> Zmienne typu STATIC
Page 1 of 1
Similar topics
Pseudo-static memory TC518128CFL-80V TOSHIBA (2)
[Dev-C++] WinApi, użycie static. (8)
Problem z funkcja static C WinAVR (6)
[C++] Problem z zmianą STATIC (5)
Dziwne zachowanie bascoma - zmienne typu string (6)
BASCOM AVR DEMO i zmienne typu DOUBLE (7)
Roznica: zmienna typu Static a zmienna globalna ( w C ) (3)
[BASCOM] Zmienne w EEPROM typu Overlay (5)
[C] zmienne static globalne/lokalne dwa pliki + nagłówki .h (7)
[JAVA] Dlaczego klasa musi być static? (3)

Page generation time: 0.092 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed