Hi-Tect C Programlama Dili
-
Aşağıdaki kodda anlamadıgım yerler var bu yerleri kodun altında belirttim bilgisi olan arkadaslar yardım edebilirse sevinirim...
#include <pic.h>
#define Drive RE0
#define LEDs PORTD
#define Tlacitko RB4 //PUsh Button.
unsigned char Maximum;
void main()
{
TRISD=0;
TRISE0=0;
ADCON1=0b01001110;
LEDs=0;
ADCON0=0b10000001;
T1CON=0x11;
Maximum=0;
while(1)
{
ADGO=1;
while(ADGO);
if(ADRESH>Maximum) Maximum=ADRESH;
if(TMR1IF)
{
//LEDs=Maximum;
LEDs=0;
if(Maximum > 133) LEDs=1;
if(Maximum > 148) LEDs=3;
if(Maximum > 163) LEDs=7;
if(Maximum > 178) LEDs=15;
if(Maximum > 193) LEDs=31;
if(Maximum > 208) LEDs=63;
if(Maximum > 223) LEDs=127;
if(Maximum > 238) LEDs=255;
Maximum=0;
Drive=1;
asm("NOP");
TMR1IF=0;
Drive=0;
}}}
bu kodda ADCON0 ve ADCON1 mesela nelere bağlı bir türlü anlamadım ANO-AN7 ile ilgili bişeyler sanırımda gerekli acıklama yok...
birde T1CON = 0x11; demiş burda ne yapmışız timer1 in kontolu falan sağlanıyorda sağda girdiğimiz bu sayı ne anlama geliyor orda şahibede kaldım 0x11 binary karsılıgı 0001 0001 mi oluyor yani 17////////////////////////////////////////////////////////7
voidsetpwm(unsigned int value){
unsigned char temp;
temp = value;
temp>>=2;
CCP2CON= temp&0x30|0x0F;
CCPR2L = value >>8;
}
bir de bu fonksiyonun 3,4,5 nolu satırlarının acıklamasını yapabilcek olan var mı...
-
up^
voidsetpwm(unsigned int value){
unsigned char temp;
temp = value;
temp>>=2;
CCP2CON= temp&0x30|0x0F;
CCPR2L = value >>8;
}
bir de bu fonksiyonun 3,4,5 nolu satırlarının acıklamasını yapabilcek olan var mı...
-
Nelere bağlı derken ? =/ ADCON0 ve ADCON1 farklı byte'lara assign edilmiş; ADCON1'deki değer pin'leri dijitale atamayla ilgili...
( deep note: tamamen salladım )
Direkt buraya sorsana -> for mor informeyşın > http://forum.htsoft.com/all/printthread.php/Cat/0/Board/pic/main/182462/type/thread
-
ADCON1= hangi pinlerin analog veya dijital olacagına falan karar veriyor.
ADCON0 = kanal seçmek için falan kullanılıyor
bunları hallettimde bu modulasyon yani PWM fonksiyonunda hala sorun var
CCP ( Compare , CApture..) burda sorun var ama bilgisi oaln pek yok sanırım ....
-
up^
-
3 4 5 de shift yapmış oteleme işlemi muhtemelen bunun sonucunu biyere bit olarak veriyodur. oteleme işlemini yapmasının sebebi işlem sonunda cıkan veriyi uygulamanın anlayacağı formata sokmak. orneğin sen a+b=c fonskiyonunu yazdım 2 v3 değeri için 5 sonucunu ürettin ama bu 5 sonucu ascii sen bunu binary yazman lazım bunun için shift yaparsın. bu da onun gibi bişe