pic basic te yazdığım kod doğrumu

Başlatan fener7758, 09 Mayıs 2007, 15:19:50

fener7758

ADC0804 analog/digital conevrterin 8-bit lik çıkşını ben bir pic e versem ve her 16  defalık bir 'for ' düngüsü içinde toplam 16 farklı veri alsam ve her farklı veri ise 1.25 ms de olsa bu olurmu.Olursa pic baside nasıl bir kodlama yapmllaıyım.yardım ederseniz cok sevnirim..Ben 16 defanın sadece bir değerini okuyabilyrum çıkıştan klan diğer veriler için bir program yyzamdım.Yazmış olduğum programa bir bakıp gerkeli düzeltmelerin nerde yapılcağını anlatrmısnız


'****************************************************************
Include "modedefs.bas"
x var  byte
bit7 var portb.7        
bit6 var portb.6
bit5 var portb.5
bit4 var portb.4
bit3 var portb.3
bit2 var portb.2
bit1 var portb.1
bit0 var portb.0

Main:    
  power=(1/16)*((bit7*128)+(bit6*64)+(bit5*32)+(bit4*16)+(bit3*8)+(bit2*4)+(bit1*2)+(bit0*1))
  pauseus 1250  
  serout2 porta.1,16780,[power]  
GOTO Main

alabora

power değişkenini bir dizi olarak tanımla. Ve bu döngünün her çevriminde power dizisinin indisini 1 artırarak işlem yap.

power[15] var byte ; Basicte dizi nasıl tanımlanır bilmem hata olabilir burada

for (i=0;i<16;i++)
{
power=(1/16)*((bit7*128)+(bit6*64)+(bit5*32)+(bit4*16)+(bit3*+(bit2*4)+(bit1*2)+(bit0*1))
pauseus 1250
serout2 porta.1,16780,[power] ; power dizinin indisini belirtir. O da böylemi tanımlanır. Emin değilim.
}

vale9

X VAR BYTE
POWER VAR BYTE

FOR X=1 TO 16 
  POWER=PORTB
  SEROUT2 PORTA.1,16780,[POWER]
NEXT X
Hayat 1'ler ve 0'lardan ibarettir.

alabora

dizi tipi tanımlama

Burada dizi tanımlamasının nasıl yapıldığı anlatılıyor.

power VAR BYTE[16] ; olacakmış tanımlama

programında analog okuduğun değerleri bu diziye atarsın olur biter. Diziye atama da

power=AN_DATA_REG ;

olabilir mesela....