while döngüsünden çıkışlarda rc0 1 iken bir anlık 0 olup geri 1 oluyor!!!!!

Başlatan muratguenduez, 29 Aralık 2015, 15:31:03

muratguenduez

merhabalar arkadaşla ve ete hocam,

yaptığım bi devrede, lcd, bitane 12v dc motor(tek yön), 3 adet de buton var. bütün inputlarım sıfa 3.3k ile bağlı. mosfetlerim 14n05, rc0 bacağında ise yine 3.3k gnd de ve rc0-led arasında ise 1k var. yani led parlaklığı gayet normal. öncelikle bu durumun kesmelerle alakalı olacağını düşündüm çünkü ilk defa kesme kullandım, kesme alt programında sadece disable int ve count++ ve k=1 var.

#int_ext               
void  ext_paraint ()   
{
disable_interrupts(INT_EXT);
disable_interrupts(GLOBAL);
count++;
k=1;
}

burda da tahmin ettiğniz üzere k=1 şartlı bir while var programda. işi bitip çıkınca rc0 bacağındaki led bianlık sönüp yanıyor. yani etkileyecek hiç bir şey yok. sadece ana program altında sadece

if(isi < sicaklik) output_low(heater);  //rc0
if(sicaklik < isi) output_high(heater); // rc0

bu var. lm35 ile çok da güzel on off yapıyor normalde. void main den hemen sonraki yani programın normalde döndüğü while(true) altında bütün işler. yukardaki if  on off şartlarını kaldırıp, yerine direk  output_high(heater);  yazdığımda while çıkışlarında sönme olayı kalmıyor.

burda aklıma lm35 geliyor. hiç bir ara malzeme kullanmadan direk + , - ve out uclarını analog girişime bağladım. lcd ana ekranında derece okutuyorum orda problem yok. aklıma lcd ana ekrana geçerken ya da lm35 tarafından bi parazitlenme olur mu diye geliyor.

bilgi=read_adc();
voltaj=(0.0048828125*bilgi)*1000;
sicaklik=(voltaj/10)+2;


seçtiğim fisgortalarda şöyle

#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL5                    //Divide By 12(48MHz oscillator input)
#FUSES CPUDIV1                  //System Clock by 4
#FUSES NODEBUG
#FUSES NOFCMEN                  //Fail-safe clock monitor disabled
#FUSES NOIESO                   //Internal External Switch Over mode disabled
#FUSES NOVREGEN                 //USB voltage regulator disabled
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
#FUSES NOSTVREN                 //Stack full/underflow will not cause reset




muratguenduez

muhtemelen lm 35 ile ilgili bi durum. az önce lm35 in out bacağı ile gnd arasına 10uF kondansator bağladım ve denedim. sönüp yanma olayı baya gözle görünür oldu. yaklaşık bir saniye sönük kalıyor. bu lm 35 ile ilgili bir sorun sanırım. ne yapmalıyım arkadaşlar ?

İlyas KAYA

Sıra ile tek tek kontrol etmeniz gerekecek ancak benim gördüğüm " count++;" komutunda count 1 er artıyor ve sıfırlayan yahut saymayı sınırlayan bir komut yok.
Programın tamamını görmek gerekecek. 
Ayrıca isis dosyalarını da ekleyin ki kontrol edecek olan kontrol edebilsin.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

muratguenduez

ilyas bey  count++ var evet bir sürü eprom kullandım ve kalıcı olması gerekiyor. ürün kaydı için giren parayı ordan göreceğim. yani kalıcı olması lazım ve sıfırlanmaması lazım. problemi eledim zaten ilyas bey, az önce yine burda bi konuya bakıyodum lm35 ile ilgili ete hocam hesap falan vermiş. bir arkadaşta bacaklarına bağlanması gereken direnc kondansatör değeri vermiş. onu da denedim fakat sönüp yanma süresi gözle görülür miktarda uzadı.  sanki  şartların olduğu yere gelince program ilk anda sıfır okuyor ki sönme oluyor. çok şaşırtıcı geldi. aslında resistance çalışcak o çıkışta. bi anlık voltaj kesip geri vermesinin hiç bir zararı olmaz ama işte kafama takıldı ve çözmem lazım. kim bilir bunu çözemeye çalışırken neler tecrübe edicem =)

"hayır ortalama almaya şu an için gerek yok
LM35 çıkışı doğru bağlıysa ve program düzgün ise ekranda değer oynamaz.

1-lm35 ile pic analog girişi arasına 1K - 10k arası değerde bir direnç bağlayın
2-pic analog girişi ile şase arasına 100nf kondansatör koyun

bakalım gene oynayacakmı?" alıntıdır by maxim

muratguenduez

Alıntı yapılan: İlyas KAYA - 29 Aralık 2015, 16:06:49
Sıra ile tek tek kontrol etmeniz gerekecek ancak benim gördüğüm " count++;" komutunda count 1 er artıyor ve sıfırlayan yahut saymayı sınırlayan bir komut yok.
Programın tamamını görmek gerekecek. 
Ayrıca isis dosyalarını da ekleyin ki kontrol edecek olan kontrol edebilsin.

lm35 in bağlı olduğuanalog girişi direncle şaseye çektim. 2 derece görüyor. ledin sönmesi gereken set set değeri 30. yani led yanıyor. aynı şey yine oluyor. yani lm35 ile alakalı bi durumda değil sanırım. analog giriş ile ilgili. ben main programında set analog komutu kullandım başka da kullnamadım çünkü tek analog girişim var.

şu an bişey daha denedim, o iki if in arasına 3sn koydum. aynı şeyi yaptı ve led 3sn sönük kaldı. o anda ekranda 500 değeriğni aldım. o 500 değeri nasıl analog girişe yüklenebilir ki ? kesme programını en üste almayı denicme bide.
#include <18F2550.h>
#device ADC=10
#use delay(internal=8MHz)

#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL5                    //Divide By 12(48MHz oscillator input)
#FUSES CPUDIV1                  //System Clock by 4
#FUSES NODEBUG
#FUSES NOFCMEN                  //Fail-safe clock monitor disabled
#FUSES NOIESO                   //Internal External Switch Over mode disabled
#FUSES NOVREGEN                 //USB voltage regulator disabled
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
#FUSES NOSTVREN                 //Stack full/underflow will not cause reset


#define heater PIN_C0  //11
#define led    PIN_C1  //12
#define paraen PIN_A6  //10
#define motor  PIN_C2  //13
#define menu   PIN_A1  //3
#define up     PIN_A2  //4
#define down   PIN_A3  //5

#define LCD_RS_PIN PIN_B1     //22
#define LCD_RW_PIN PIN_B2     //23
#define LCD_ENABLE_PIN PIN_B3 //24
#define LCD_DATA4 PIN_B4      //25
#define LCD_DATA5 PIN_B5      //26
#define LCD_DATA6 PIN_B6      //27
#define LCD_DATA7 PIN_B7      //28
#include <lcd.c>

unsigned long int bilgi;
float voltaj,sicaklik;
int8 time_findik=0,time_antep=0,time_badem=0,time_fistik=0,isi_USER_1=0,time_USER_1,isi_USER_2=0,time_USER_2,isi_USER_3=0,time_USER_3,isi_USER_4=0,time_USER_4,isi_USER_5=0,time_USER_5,isi_USER_6=0,time_USER_6,i=0,j=0,time1=0,isi_findik=0,isi_antep=0,isi_badem=0,isi_fistik=0,isi=0,ts=0,is=0;
int1 a=0,alt=0,e=0,k=0;
int16 time=0,count=0;


#int_ext               
void  ext_paraint ()   
{
disable_interrupts(INT_EXT);
disable_interrupts(GLOBAL);
count++;
k=1;
}

void main()
{
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0);
   ext_int_edge(H_TO_L);   // INT_EXT kesmesinin düşen kenarda aktif olacağını belirtir
   enable_interrupts(INT_EXT);  // INT_EXT kesmesini aktif yapar
   enable_interrupts(GLOBAL);   // Aktif edilen kesmelere izin ver
   
   lcd_init();
   printf(lcd_putc,"\f");
   set_adc_channel(0);   
   delay_us(20);
   
   if(read_eeprom(24)==255){
   write_eeprom(0,0);
   write_eeprom(1,0);
   write_eeprom(2,0);
   write_eeprom(3,0);
   write_eeprom(4,0);
   write_eeprom(5,0);
   write_eeprom(6,0);
   write_eeprom(7,0);
   write_eeprom(8,0);
   write_eeprom(9,0);
   write_eeprom(10,0);
   write_eeprom(11,0);
   write_eeprom(12,0);
   write_eeprom(13,0);
   write_eeprom(14,0);
   write_eeprom(15,0);
   write_eeprom(16,0);
   write_eeprom(17,0);
   write_eeprom(18,0);
   write_eeprom(19,0);
   write_eeprom(20,0);
   write_eeprom(21,0);
   write_eeprom(22,0);
   write_eeprom(23,0);
   write_eeprom(24,0);   
   }
   
   
   isi_antep=read_EEPROM(0);
   time_antep=read_EEPROM(1);
   isi_badem=read_EEPROM(2);
   time_badem=read_EEPROM(3);
   isi_findik=read_EEPROM(4);
   time_findik=read_EEPROM(5);
   isi_fistik=read_EEPROM(6);
   time_fistik=read_EEPROM(7);
   is=read_EEPROM(8);
   ts=read_eeprom(9);
   isi_USER_1=read_EEPROM(10);
   time_USER_1=read_EEPROM(11);
   isi_USER_2=read_EEPROM(12);
   time_USER_2=read_EEPROM(13);                       
   isi_USER_3=read_EEPROM(14);
   time_USER_3=read_EEPROM(15);
   isi_USER_4=read_EEPROM(16);
   time_USER_4=read_EEPROM(17);
   isi_USER_5=read_EEPROM(18);
   time_USER_5=read_EEPROM(19);
   isi_USER_6=read_EEPROM(20);
   time_USER_6=read_EEPROM(21);
   count=read_EEPROM(22);
   
   isi=read_eeprom(is);
   time1=read_eeprom(ts);
   output_low(heater);
   output_low(motor);
   output_low(led);                   
   output_low(paraen);
     
   while(TRUE)
   {
      output_high(paraen);
     
      while(k==1){ printf(lcd_putc,"\f      bas       "); delay_ms(120); output_low(paraen);
         while(1){ if(input(menu)) {printf(lcd_putc,"\a    veriyom     "); output_high(motor); delay_ms(time); output_low(motor);
         printf(lcd_putc, "\a afiyet seker   \n    yin gari    "); delay_ms(2000); k=0;     
         enable_interrupts(INT_EXT);
         enable_interrupts(GLOBAL);
         break;
         }
        }
       }
     
      if(input(menu)){delay_ms(120); a=1; printf(lcd_putc,"\f");}
     
      while(a==1){ output_low(paraen);
         printf(lcd_putc, "\a      menu      " );
         if(input(down) && input(up)) {delay_ms(120); while(input(down) && input(up)) a=0;}
         
       switch(i){
       case 0: printf(lcd_putc, "\n    <ANTEP >    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
        while(alt==1){
       
            switch(j){
            case 0: printf(lcd_putc,"\a     ANTEP      \n>isi= %u t= %u    ",isi_antep,time_antep); delay_ms(120); if(isi_antep>50) isi_antep=50; if(isi_antep<30) isi_antep=30;
            if(input(up)) {isi_antep++; if(isi_antep>50) isi_antep=50; delay_ms(120);} if(input(down)) {isi_antep--; if(isi_antep<30) isi_antep=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120);   }
            break;
            case 1: printf(lcd_putc,"\a     ANTEP      \n isi= %u>t= %u    ",isi_antep,time_antep); delay_ms(120);
            if(input(up)) {time_antep++; delay_ms(120);} if(input(down)) {time_antep--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(0,isi_antep); write_eeprom(1,time_antep); isi=read_eeprom(0); time1=read_eeprom(1); write_eeprom(8,0); write_eeprom(9,1);}
            break;
            }
        }
       break;       
       case 1: printf(lcd_putc, "\n    <BADEM >     ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     BADEM      \n>isi= %u t= %u    ",isi_badem,time_badem); delay_ms(120); if(isi_badem>50) isi_badem=50; if(isi_badem<30) isi_badem=30;             
            if(input(up)) {isi_badem++; if(isi_badem>50) isi_badem=50; delay_ms(120);} if(input(down)) {isi_badem--; if(isi_badem<30) isi_badem=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120);  if(isi_badem>50) isi_badem=50;}
            break;
            case 1: printf(lcd_putc,"\a     BADEM      \n isi= %u>t= %u    ",isi_badem,time_badem); delay_ms(120);
            if(input(up)) {time_badem++; delay_ms(120);} if(input(down)) {time_badem--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(2,isi_badem); write_eeprom(3,time_badem); isi=read_eeprom(2); time1=read_eeprom(3); write_eeprom(8,2); write_eeprom(9,3);}
            break;
            }
        }
       break;
       case 2: printf(lcd_putc, "\n    <FINDIK>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     FINDIK     \n>isi= %u t= %u    ",isi_findik,time_findik); delay_ms(120); if(isi_findik>50) isi_findik=50; if(isi_findik<30) isi_findik=30;               
            if(input(up)) {isi_findik++; if(isi_findik>50) isi_findik=50; delay_ms(120);} if(input(down)) {isi_findik--; if(isi_findik<30) isi_findik=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120);  }
            break;
            case 1: printf(lcd_putc,"\a     FINDIK     \n isi= %u>t= %u    ",isi_findik,time_findik); delay_ms(120);
            if(input(up)) {time_findik++; delay_ms(120);} if(input(down)) {time_findik--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(4,isi_findik); write_eeprom(5,time_findik); isi=read_eeprom(4); time1=read_eeprom(5);  write_eeprom(8,4); write_eeprom(9,5);}
            break;
            }
        }
       break;
       case 3: printf(lcd_putc, "\n    <FISTIK>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     FISTIK     \n>isi= %u t= %u    ",isi_fistik,time_fistik); delay_ms(120); if(isi_fistik>50) {isi_fistik=50;} if(isi_fistik<30) isi_fistik=30;               
            if(input(up)) {isi_fistik++; if(isi_fistik>50) isi_fistik=50; delay_ms(120);} if(input(down)) {isi_fistik--; if(isi_fistik<30) isi_fistik=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     FISTIK     \n isi= %u>t= %u    ",isi_fistik,time_fistik); delay_ms(120);
            if(input(up)) {time_fistik++; delay_ms(120);} if(input(down)) {time_fistik--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(6,isi_fistik); write_eeprom(7,time_fistik); isi=read_eeprom(6); time1=read_eeprom(7);  write_eeprom(8,6); write_eeprom(9,7);}
            break;
            }
        }
       break;
       case 4: printf(lcd_putc, "\n    <USER 1>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 1     \n>isi= %u t= %u    ",isi_USER_1,time_USER_1); delay_ms(120); if(isi_USER_1>50) {isi_USER_1=50;} if(isi_USER_1<30) isi_USER_1=30;               
            if(input(up)) {isi_USER_1++; if(isi_USER_1>50) isi_USER_1=50; delay_ms(120);} if(input(down)) {isi_USER_1--; if(isi_USER_1<30) isi_USER_1=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 1     \n isi= %u>t= %u    ",isi_USER_1,time_USER_1); delay_ms(120);
            if(input(up)) {time_USER_1++; delay_ms(120);} if(input(down)) {time_USER_1--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(10,isi_USER_1); write_eeprom(11,time_USER_1); isi=read_eeprom(10); time1=read_eeprom(11);  write_eeprom(8,10); write_eeprom(9,11);}
            break;
            }
        }
       break;
       case 5: printf(lcd_putc, "\n    <USER 2>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 2     \n>isi= %u t= %u    ",isi_USER_2,time_USER_2); delay_ms(120); if(isi_USER_2>50) {isi_USER_2=50;} if(isi_USER_2<30) isi_USER_2=30;               
            if(input(up)) {isi_USER_2++; if(isi_USER_2>50) isi_USER_2=50; delay_ms(120);} if(input(down)) {isi_USER_2--; if(isi_USER_2<30) isi_USER_2=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 2     \n isi= %u>t= %u    ",isi_USER_2,time_USER_2); delay_ms(120);
            if(input(up)) {time_USER_2++; delay_ms(120);} if(input(down)) {time_USER_2--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(12,isi_USER_2); write_eeprom(13,time_USER_2); isi=read_eeprom(12); time1=read_eeprom(13);  write_eeprom(8,12); write_eeprom(9,13);}
            break;
            }
        }
       break;
       case 6: printf(lcd_putc, "\n    <USER 3>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 3     \n>isi= %u t= %u    ",isi_USER_3,time_USER_3); delay_ms(120); if(isi_USER_3>50) {isi_USER_3=50;} if(isi_USER_3<30) isi_USER_3=30;               
            if(input(up)) {isi_USER_3++; if(isi_USER_3>50) isi_USER_3=50; delay_ms(120);} if(input(down)) {isi_USER_3--; if(isi_USER_3<30) isi_USER_3=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 3     \n isi= %u>t= %u    ",isi_USER_3,time_USER_3); delay_ms(120);
            if(input(up)) {time_USER_3++; delay_ms(120);} if(input(down)) {time_USER_3--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(14,isi_USER_3); write_eeprom(15,time_USER_3); isi=read_eeprom(14); time1=read_eeprom(15);  write_eeprom(8,14); write_eeprom(9,15);}
            break;
            }
        }
       break;
       case 7: printf(lcd_putc, "\n    <USER 4>   ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 4     \n>isi= %u t= %u    ",isi_USER_4,time_USER_4); delay_ms(120); if(isi_USER_4>50) {isi_USER_4=50;} if(isi_USER_4<30) isi_USER_4=30;               
            if(input(up)) {isi_USER_4++; if(isi_USER_4>50) isi_USER_4=50; delay_ms(120);} if(input(down)) {isi_USER_4--; if(isi_USER_4<30) isi_USER_4=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 4     \n isi= %u>t= %u    ",isi_USER_4,time_USER_4); delay_ms(120);
            if(input(up)) {time_USER_4++; delay_ms(120);} if(input(down)) {time_USER_4--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(16,isi_USER_4); write_eeprom(17,time_USER_4); isi=read_eeprom(16); time1=read_eeprom(17);  write_eeprom(8,16); write_eeprom(9,17);}
            break;
            }
        }
       break;
       case 8: printf(lcd_putc, "\n    <USER 5>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 5     \n>isi= %u t= %u    ",isi_USER_5,time_USER_5); delay_ms(120); if(isi_USER_5>50) {isi_USER_5=50;} if(isi_USER_5<30) isi_USER_5=30;               
            if(input(up)) {isi_USER_5++; if(isi_USER_5>50) isi_USER_5=50; delay_ms(120);} if(input(down)) {isi_USER_5--; if(isi_USER_5<30) isi_USER_5=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 5     \n isi= %u>t= %u    ",isi_USER_5,time_USER_5); delay_ms(120);
            if(input(up)) {time_USER_5++; delay_ms(120);} if(input(down)) {time_USER_5--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(18,isi_USER_5); write_eeprom(19,time_USER_5); isi=read_eeprom(18); time1=read_eeprom(19);  write_eeprom(8,18); write_eeprom(9,19);}
            break;
            }
        }
       break;
       case 9: printf(lcd_putc, "\n    <USER 6>    ");delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);} if(input(menu)) {alt=1; delay_ms(120);} if(11==i) i=10; if(i==255) i=0;
       
       while(alt==1){
       
            switch(j){       
            case 0: printf(lcd_putc,"\a     USER 6     \n>isi= %u t= %u    ",isi_USER_6,time_USER_6); delay_ms(120); if(isi_USER_6>50) {isi_USER_6=50;} if(isi_USER_6<30) isi_USER_6=30;               
            if(input(up)) {isi_USER_6++; if(isi_USER_6>50) isi_USER_6=50; delay_ms(120);} if(input(down)) {isi_USER_6--; if(isi_USER_6<30) isi_USER_6=30; delay_ms(120);} if(input(menu)) {j++; delay_ms(120); }
            break;
            case 1: printf(lcd_putc,"\a     USER 6     \n isi= %u>t= %u    ",isi_USER_6,time_USER_6); delay_ms(120);
            if(input(up)) {time_USER_6++; delay_ms(120);} if(input(down)) {time_USER_6--; delay_ms(120);} if(input(menu)) {j=0; delay_ms(120); alt=0;
            write_eeprom(20,isi_USER_6); write_eeprom(21,time_USER_6); isi=read_eeprom(20); time1=read_eeprom(21);  write_eeprom(8,20); write_eeprom(9,21);}
            break;
            }
        }
       break;
       case 10: write_eeprom(22,count); printf(lcd_putc, "\a    COUNT       \n  %Lu            ",count); delay_ms(120);
       if(input(up)) {i++; delay_ms(120);} if(input(down)) {i--; delay_ms(120);}  if(11==i) i=10; if(i==255) i=0;
       break;
     
       }
      }
     
      bilgi=read_adc();
     
      voltaj=(0.0048828125*bilgi)*1000;   // Dijitale çevirme işlemine uğrayan sinyalin mV olarak gerilimi hesaplanıyor
      sicaklik=(voltaj/10)+1;             // Her 10mV'ta 1 derece artma
     
      time=((int16)(time1))*100;
     
      if(isi < sicaklik) output_low(heater);
      if(sicaklik < isi) output_high(heater);
     
      printf(lcd_putc,"\a %2.0f  jeton at  \nt:%u t:%Lu     ",sicaklik,isi,time);
      delay_ms(120);
           
   }
}

muratguenduez

problem 12volt harici kaynağıyla ilgili sanırım. pic devresine 5v adaptör bağlı, 12 volt beslemeyede büyük tip 24 volt 3a regüleli kaynak bağlı. 12v kaynağı kesip while dan çıkınca bişey olmuyor yani herşey güzel. eksileri ortak. iki kaynağı birbirine bağlamakla ilgili araştırma yapmam lazım =)

Powered by EzPortal