Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: kara_kalem - 19 Ekim 2005, 16:52:38

Başlık: keil c51
Gönderen: kara_kalem - 19 Ekim 2005, 16:52:38
keil programıyla ilgili bir ana başlık açılamazmı acaba? program hakkında fikir alışverişi için.
Başlık: Ynt: keil c51
Gönderen: merve damar - 27 Kasım 2020, 17:27:19
selamlar,
keilde bu şekilde bi kodum var. çıkışı girişteki butona bastığımda çıkışı aktif etmek istiyorum. aktif ediyorum. ama bi kaç saniye sonra pasif oluyor tekrardan. interupt, delay timer hepsini denedim hepsinde aynı sonuç. acaba keille ilgili bir problem mi var? ya da donanımsal başka bişey?
void Timer0_ISR (void) interrupt 1 
int i;
int counter=0;
void Timer0_ISR (void) ;
void Delay_ms(unsigned int time1);

void Timer0_ISR (void) interrupt 1 
{
   
    TL0 = (1536& 0x00FF);
    TH0 = ((1536 & 0xFF00) >> 8);
   counter++;
}


void main (void)

P15_Quasi_Mode; // Output
P30_Input_Mode; //Input
  TIMER0_MODE1_ENABLE;
set_T0M;
set_ET0;
set_EA;

P15=0;
while(1)
{

if(P30==1){
P15=1;
clr_TR0;
set_TR0; //Timer0 run
if(P30==0){
if(counter >=5){
P15=1;
counter=0;
clr_TR0;
P15=1;

}

}}}
}
}

Başlık: Ynt: keil c51
Gönderen: volkanunal - 28 Kasım 2020, 23:08:41
Alıntı yapılan: merve damar - 27 Kasım 2020, 17:27:19selamlar,
keilde bu şekilde bi kodum var. çıkışı girişteki butona bastığımda çıkışı aktif etmek istiyorum. aktif ediyorum. ama bi kaç saniye sonra pasif oluyor tekrardan. interupt, delay timer hepsini denedim hepsinde aynı sonuç. acaba keille ilgili bir problem mi var? ya da donanımsal başka bişey?
void Timer0_ISR (void) interrupt 1 
int i;
int counter=0;
void Timer0_ISR (void) ;
void Delay_ms(unsigned int time1);

void Timer0_ISR (void) interrupt 1 
{
   
    TL0 = (1536& 0x00FF);
    TH0 = ((1536 & 0xFF00) >> 8);
   counter++;
}


void main (void)

P15_Quasi_Mode; // Output
P30_Input_Mode; //Input
  TIMER0_MODE1_ENABLE;
set_T0M;
set_ET0;
set_EA;

P15=0;
while(1)
{

if(P30==1){
P15=1;
clr_TR0;
set_TR0; //Timer0 run
if(P30==0){
if(counter >=5){
P15=1;
counter=0;
clr_TR0;
P15=1;

}

}}}
}
}



Timer interrupt içerisinde kullandığınız değişkeni bu şekilde kullanmanız problem doğurabilir bilginiz olsun.
Detaylı anlatım için, https://www.youtube.com/watch?v=telqY-65kPk
Başlık: Ynt: keil c51
Gönderen: merve damar - 01 Aralık 2020, 09:10:42
Onunla ilgili olmadığını düşünüyorum çünkü çok basit bir kod. buton ve led kullandım. butona bastığımda led yansın çektiğimde de yansın istiyorum. hep yansın ben başka bi müdahale edene kadar beklesin istiyorum. basıyorum yanıyor. elimi çekiyorum belli bir süre yanıyor. tekrar sönüyor. acaba döngü ayarlarında bir problem mi var. Sanki kendini resetliyo gibi. kodlarım bu şekilde.
#include "N76E003.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "Common.h"
#include "Delay.h"

void Delay_ms(unsigned int time1);
int button;
int i;
void main (void)

  InitialUART0_Timer1(9600);
 P14_PushPull_Mode;
 P05_Quasi_Mode;
   P14=0;
   while(1)
   {
      
button=P05;
      if(P05==0){
         
         P14=1;
         Delay_ms(50);
      }
      printf("button : %d\r\n",button);
      
}
   
}
void Delay_ms(unsigned int time1)
   {
   
   while (time1--){for(i=0;i<200;i++);}

}
Başlık: Ynt: keil c51
Gönderen: volkanunal - 01 Aralık 2020, 09:49:24
Kendini resetlediğini düşünüyorsanız basit bir şekilde açıldığında bir debug mesajı yazdırın, mesaj tekrar tekrar yazar ise anlayabilirsiniz kendini resetleyip resetlemediğini.
Başlık: Ynt: keil c51
Gönderen: merve damar - 01 Aralık 2020, 10:21:50
butonun durumunu okyabiliyorum. https://dosya.co/8kqo71pan623/2020-12-01_10h07_53.mp4.html
bakın
Başlık: Ynt: keil c51
Gönderen: sadogan - 01 Aralık 2020, 14:44:48
watchdog resetlemesin ,ayarı varmı,
Başlık: Ynt: keil c51
Gönderen: merve damar - 01 Aralık 2020, 15:03:36
 ::ok
Evet böyle bi ayar vardı kaldırdım şimdi oluyor. çooook teşekkürler  :)
(https://i.ibb.co/MNbqdKm/2020-12-01-15h01-18.png) (https://ibb.co/MNbqdKm)