mikroc ile 12f675 programlama yardım...

Başlatan files, 01 Nisan 2011, 02:28:03

files

merhaba arkadaşlar pic12f675 mikro işlemcisi kullanarak iki kanallı bir led animasyon devresi yaptım.
devrenin ares çizimini ekte bulabilirsiniz.bu devreyi çalıştırdım ancak programlama noktasında birkaç sorunum var.
programlamayı mikro c ile yapıyorum ve çalıştırdığım 6-7 tane animasyon var 2 tanesinde yoğunlaştım.
sorun şu ki bu iki animasyonu c de yazmış olmama rağmen sadece tek tek yüklemek zorundayım.iki farklı animasyonumu bir buttonla değiştirecek şekilde bir kod yazamadım/yazmayı da bilmiyorum...
birde eeprom diye birşey var.onu da beceremedim.elektrik kesildiğinde yada kapatılıp açıldığında hangi animasyonda ise ondan devam etmesi gerekiyor ama bunu da nasıl yapacağım bilemiyorum.
mikro c de yazılmış çalışan animasyon kodları aşağıda yadımcı olursanız sevinirim...

bu da devrenin ares çizimi...




animasyon 1:

void init_ports(void)
{
   TRISIO = 0;
}

void main() {

   init_ports();

   while(1) {

      GPIO = (1<<0);
      delay_ms(1250);
      GPIO = 0;
     
      GPIO = (1<<1);
      delay_ms(250);
      GPIO = 0;
     
      GPIO = (1<<0);
      delay_ms(250);
      GPIO = 0;
     
      GPIO = (1<<1);
      delay_ms(250);
      GPIO = 0;
     
      GPIO = (1<<0);
      delay_ms(250);
      GPIO = 0;
     
      GPIO = (1<<1);
      delay_ms(250);
      GPIO = 0;
  }
}
//program sonu





animasyon 2:


KANAL1()
       { unsigned short sayac;
         for(sayac=0; sayac<5; sayac++)
         {
          GPIO.F0 = 1;
          delay_ms(50);
          GPIO.F0 = 0;
          delay_ms(50);
        }
      }

KANAL2()
       { unsigned short sayac;
         for(sayac=0; sayac<5; sayac++)
         {
          GPIO.F1 = 1;
          delay_ms(50);
          GPIO.F1 = 0;
          delay_ms(50);
        }
      }

       void main()
       {
         ANSEL  = 0;
         CMCON  = 7;
         TRISIO = 0;
         GPIO   = 0;

            for(;;)
            {
             KANAL1();
             delay_ms(250);
           
             KANAL2();
             delay_ms(250);
             }
        }
//program sonu

hosiminh

12f675 in kesme ayağı 5 numaralı ayak imiş bu PIC i hiç kullanmadım ccs c kullanıyorum derleyici olarak fakat fikir olması açısından sana şunu diyebilirim buton koyacaksan 5 numaralı ayağa koymalısın ve "int_ext" kesmesini kullanarak programı yazmalısın ya da bu animasyonlarını iç içe yazarsan sırayla atlar sonra başa döner butona da ihtiyacın kalmaz.