16f628a uygulama proteus çalışma sorunu

Başlatan protezdiyot, 10 Ocak 2015, 17:51:58

ahmetbudak

#15
Alıntı yapılan: protezdiyot - 12 Ocak 2015, 13:42:13
Analog giriş yok 16f628a da.
16f628a 'da ADC yok ancak analog karşılaştırıcılar var Pic'e ilk enerji verildiğinde PORTA ' nın 0,1,2 ve 3. pinleri analog modda çalışır bunlara dijital giriş veya çıkış atamak için CMCON registerinin 0,1,2 nolu bitleri 1 yapılmalı yani CMCON registerine 7 değeri verilmeli  işlemcininin datasheet'inin 35 ve 62. sayfalarında detaylı bilgisi var

mesaj birleştirme:: 13 Ocak 2015, 17:04:16

16f628 de port A nın girişlerini dijital yapmak için
setup_ccp1(ccp_off);
setup_comparators(NC_NC_NC_NC)
komutu kulanılıyordu

protezdiyot

#16
Son hali bu programın.Ama hala butonu bırakınca led sönüyor...

#include <main.h>

#define ileributonu Pin_A0
#define geributonubutonu Pin_A1
#define stopbutonu Pin_A2

#define motorileri Pin_B0
#define motorgeri Pin_B1



void main()
{
setup_ccp1(ccp_off);
setup_comparator(nc_nc_nc_nc); 




output_b(0x00);
output_a(0xff);
output_low(motorileri);
output_low(motorgeri);

   while(TRUE)
   {
   output_toggle(pin_b4);
   delay_ms(250);
if(input(ileributonu)& !input(geributonubutonu)& !input(stopbutonu)){
   
   delay_ms(25);
   
    if (input(stopbutonu))
    {goto stop;}
   
    output_high(motorileri);
    output_low(motorgeri);
    while(input(ileributonu));
         }
    
if(input(geributonubutonu)& !input(ileributonu)& !input(stopbutonu))
{
   geri:
   if (input(stopbutonu))
    {goto stop;}
    
    output_low(motorileri);
    output_high(motorgeri);
     goto geri;           }
 stop:
 {
    output_low(motorileri);
    output_low(motorgeri);
                   }

}
    }


mesaj birleştirme:: 13 Ocak 2015, 08:09:48

Bu arada PİC CCsS in 5.xx sürümünü kullanıyorum.4.13 deki default komutlar bunda gelmiyor gördüğüm kadarıyla.Örneğin kesmeler aktif mi pasif mi bilemiyorum.Bunu komutla mı yazmam grekiyor??

mesaj birleştirme:: 13 Ocak 2015, 08:19:23

Sorunun ne olduğunu tam olarak bilmiyorum ama ekdeki kodda butonu bırakınca devrede hiçbirşeyi değiştirmemiş lmama rağmen led sönmüyor.
#include <buton.h>

void main()
{
   port_B_pullups(0xFF);

   while(TRUE)
   {
   if (input(buton1))
   output_high(led1);
      //TODO: User Code
   }

}


mesaj birleştirme:: 12 Ocak 2015, 18:42:32

sanırım kodlamamda hata var. Şu haliyle butonu bırakınca led sönmüyor..

#include <buton2.h>

#define ileributonu pin_a0
#define geributonu pin_a3
#define stopbutonu pin_a1
#define motorileri pin_b0
#define motorgeri pin_b1
void main()
{
   
  
   
   while(TRUE)
   {
    output_toggle(pin_b3);
   delay_ms(500);
   
   if(input(ileributonu) && !input(geributonu) && !input(stopbutonu)){
    while( !input(geributonu) && !input(stopbutonu))
    {
    output_high(motorileri);
    output_low(motorgeri);
    }}
    if (input(stopbutonu))
    {
    output_high(motorgeri);
    output_low(motorileri);}

   }}

semihel

#17
sana gönderdiğim dosyadaki kodu deneme şansın oldumu
bide proteus 8 den ziyade proteus 7.10 da deneme yaparsan daha faydalı olur
proteus 8 kullancaksan proje olusturman lazım yoksa zamanla hatalı çalışabiliyo isis

protezdiyot

Sn.Semihel henuz deneyemedim.İş yoğunluğu arasında öğrenmeye çalışıyorum.Desteğin teşekkürler...