PIC BASIC PRO Öğreniyoruz soru cevapları

Başlatan aster, 19 Mayıs 2005, 17:33:33

elektrohaluk

16F877 kullanarak bir timer devresi yapmam lazim.Bu devreye bir lcd ve bir keyboard bagli olacak. Bu sistem keyboardtan girlen sayıya kadar devreyi saydıracak. Bu devre şemasi nasil oluşturulabilir. Yardimlariniza ihtiyacim var...

mhk

@ DEVICE pic16F84A
Seçilen chip 16F84

@ DEVICE pic16F84A,WDT_ON
@ DEVICE pic16F84A,WDT_OFF
Wdt açık yada kapalı

@ DEVICE pic16F84A,PWRT_ON
@ DEVICE pic16F84A,PWRT_OFF

Power on reset. Mikroişlemci besleme gerilimi düzgün seviyeye çıkana kadar işlemciyi reset durumunda tutar.

@ DEVICE pic16F84A,PROTECT_OFF
@ DEVICE pic16F84A,PROTECT_ON

Kod koruması kapalı. Eğer başkaları tarafından mikroişlemci içindeki hex kodunun okunmasının istemiyorsanız bu kod ON olmalıdır.

@ DEVICE pic16F84A,XT_OSC
@ DEVICE pic16F84A,HS_OSC
Kullanılan osilatör tipini belirler. Eğer 20 Mhz osilatör kullanıyorsanız Osilatör tipi HS olmaldır.

16F628 için bazı sigorta örnekleri

@ device MCLR_OFF
@ device MCLR_ON
MCLR ucunun reset yada normal port gibi davranması için ayarlanır.

@ device INTRC_OSC_NOCLKOUT
Dahili osilatör kullanılır ( 4 Mhz ) harici osilatör için kristal ve kondansatörler bağlamanıza gerek yoktur.


Bu sigortalarda 18F serisi için

@   __CONFIG    _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
@   __CONFIG    _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_ON_2L
@   __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
@   __CONFIG    _CONFIG3H, _CCP2MX_ON_3H
@   __CONFIG    _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
@   __CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
@   __CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
@   __CONFIG _CONFIG6L, _WRT0_ON_6L & _WRT1_ON_6L & _WRT2_ON_6L & _WRT3_ON_6L
@   __CONFIG _CONFIG7L, _EBTR0_ON_7L & _EBTR1_ON_7L & _EBTR2_ON_7L & _EBTR3_ON_7L
@   __CONFIG _CONFIG7H, _EBTRB_ON_7H


Son olarak picbasic proda WDT yi kullanmak için programın tanımlama kısmında;
DEFINE NO_CLRWDT 1     tanımlamasını eklemek gerekecek.

Umarım işinize yarar. Kolay gelsin
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

mihri

"Eppur si muove!"

feyzi

Alıntı yapılan: "psiko"Pic Basic Pro Öğreniyoruz 3 ve 4'te LCD bağlatılarının çoğunda hatalar var. VEE bacağı POT çıkışına VDD ise besleme gerilimine bağlanmalı. çoğu şemada bu konuda hata var.
Kıymetli arkadaşlar!
Bu ince işlerin, umumun istifadesine arz edilmeden  önce ,bir komisyon tarafından kontrol edilmesi gerekir. Daha bu gün Altas Elektroniğin en gelişmiş deney setinde 8x2 LCD bağlantılarından iki bacağı yanlış yazıldığından  2 saatimi zayi ettim.Benim gibi yüzlerce insanımızın ne kadar zaman kaybedeceği hesap edilsin.......
"insanların hayırlısı ,onlara faydalı olandır."  (H.Ş.)

Petek

Alıntı yapılan: "mihri"#include <16F84A.h>
#fuses XT, NOWDT, PUT, NOPROTECT
#use delay(clock=4000000)
#define led port_b0
void main()
{
  basla:                      
  {
     output_high(pin_b0);
     delay_ms(200);
     output_low(pin_b0);
     delay_ms(200);
  }
  goto basla;
}

yukarıdaki iki programda aynı işi yapıyo. 1. prg ccs de 2. prg pbp de yazıldı ama ortada bi tezat var ccs de wdt açık olduğunda program çalışmıyo, pbp de ise wdt nin açık yada kapalı olması farketmiyo her iki durumda çalışıyo neden :?:  bide bu sigortaların ne işe yaradığını ne zaman açık ne zaman kapalı olması gerektiğini anlatırsanız çok sevinirim. çalışmalarınızda başarılar dilerim.
Eğer C de goto kullanacaksan bunu C kullanıcılarına gösterme. Çok büyük ayıp :)
WDT açık olunca çalışmaz. Birincisi ya WDT süresini uzun tutacaksın (200ms büyük) ve delay lerden sonra clear_wdt yapacaksın, yada

#use delay (clock=4000000, RESTART_WDT)

kullanarak delay döngüsünde wdt in otomatik sıfırlanmasını sağlatacaksın.
Bu açıklamadan sonra programının neden çalışmadığını anlamış olman lazım...
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mihri

Petek hocam rica etsem şu WDT yi biraz açabilirmisin ?  ;)
"Eppur si muove!"


metuman

hocam ben pic'e yeni başladım 3-5 ledi yakıp söndürmekten başka bişey bilmiyorum.pic ile dijital saat,sıcaklık ölçümü nem ölçümü gibi örnekleri derslere eklerseniz sevinirim.kolay gelsin.

metuman

Bir örnekte ADCON1=%10001110 '7. bit 1 yapıldı 10 bit sonuç almak için gibi bir açıklama yapılmış (pic basic pro dersleri 5'te) bu komut ne anlama geliyor.biraz açarsanız iyi olur.

OG

Alıntı yapılan: "metuman"Bir örnekte ADCON1=%10001110 '7. bit 1 yapıldı 10 bit sonuç almak için gibi bir açıklama yapılmış (pic basic pro dersleri 5'te) bu komut ne anlama geliyor.biraz açarsanız iyi olur.
Bu pic basic pro ile ilgili değil, PIC ile ilgili. Datasheetlerden görebilirsiniz.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ee_faris

Alıntı yapılan: "tagan"lcd ekrana ders 3 te olduğu gibi hexadecimal olarak sayı yazdırmaya çalışıyorum bad expression hatası veriyor. komut:
LCDOUT $FE,$C0,"Hex  = ",HEX2 SAYI
tabiki aynı yöntemle binary olarakta yazamıyorum herhalde HEX2 tanımlamasında hata var  :?:
Hexadecimal ve binary ile birlikte "Bad expression" hatasını bende decimal bir sayının digit sayısını belirtmek için kullanılan DEC2 komutu ile birlikte de veriyor.Bu sorunun nereden kaynaklandığını veya nasıl çözüleceğini bilen var mı? Herkese teşekkürler.

net65

benim problemim soyle

makken dogru olmasına ragmen pic e yuklenince ya calismıyor yada farkli calısıyor..

mesela

if porta.1=1 then
high porb.1
if porta.2=1 then
high portb.2

gibi bir if komutu koydugumuzda porta nin 1 pine 1  degdiginde portb.1 ucundaki led yakmalı ama yakmıyor yada yaksada 2. if komutu calısmıtor...

yardımcı olursanız sevinirim...

babali

şu dersler nerde adresı var ama ben gıremıyorum sayfa yok dıyor

seco06


gonenc

arkadaşlar pic basic ile pic basic pro aynı programlama dillerimi yoksa arasında farklar var mı...