Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: kaypic38 - 24 Şubat 2012, 22:10:23

Başlık: MicroC sorunu ?
Gönderen: kaypic38 - 24 Şubat 2012, 22:10:23
MikroC ile ilk defa lcd uygulaması yapıyorum ve bulduğum bir dökümandan bir program parçasını derleyemedim ADCON1=6; bu komutu hatalı yazım olarak görüyor derleyici acaba dökümanda mı yanlış verilmiş ?void ayarlar () {
PORTB=0;
TRISB=0×00;
INTCON = 0; // Tüm kesmeler iptal edildi
Lcd_Init(); // Lcd_Init PORTB LCD için hazırlandı
LCD_Cmd(_LCD_CURSOR_OFF); // LCD kursör kapatıldı
LCD_Cmd(_LCD_CLEAR); // LCD de radtgele karekter oluşmaması için silindi
ADCON1 =6; // ADC pinleri Dijitale ayarlandır
CMCON=0×07; // karşılaştırıcı modülleri dijitale ayarlandı
}
Başlık: Ynt: MicroC sorunu ?
Gönderen: emosamca - 24 Şubat 2012, 22:15:10
Kullandığın PIC nedir?
Başlık: Ynt: MicroC sorunu ?
Gönderen: kaypic38 - 24 Şubat 2012, 22:16:23
16f628a
Başlık: Ynt: MicroC sorunu ?
Gönderen: kaypic38 - 24 Şubat 2012, 22:48:40
Programın tamamını vereyim;

/***********************************************/
void main() {
unsigned int i,a,l,x;
char *text1; /*karakter tipinde işaretçi tanımlanıyor.İşaretçiler oldukça geniş konudur.sadece * la gösterildiğini bilmek yeterlidir*/
char *isim ;
sbit LCD_RS at RB2_bit; /*LCD bağlantıları ayarlanıyor*/
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
}
/**************************************************************/

void ayarlar() {
PORTB=0;
TRISB=0x00;
INTCON=0;
Lcd_init();
LCD_Cmd(_LCD_CURSOR_OFF);
LCD_Cmd(_LCD_CLEAR);
ADCON1=6;
CMCON=0x07;
}
/*********************************************/
void main() {
ayarlar()
for (;;) {
text1="BAŞLANGIÇ";
for(i=0;i<56;i++) {
text1++;
Lcd_out(1,1,text1);
delay_ms(1000);
}
LCD_Cmd(_LCD_CLEAR);
delay_ms(50)
isim="DENEME BAŞARILI";
for(i=0;i<63;i++)
{
isim++;
Lcd_out(2,1,isim);
delay_ms(100);
}
LCD_Cmd(_LCD_CLEAR);
i=0;
Delay_ms(200);
for(i=0;i<3;i++){
text1= "BURASI 1.SATIR";
LCD_Cmd(_LCD_CLEAR);
Lcd_out(2,1,text1); /*ekranın 2.satırına sabit yazı 1 karakterden itibaran basılıyor*/
delay_ms(800);
text1= "BURASI 2.SATIR";
LCD_Cmd(_LCD_CLEAR);
Lcd_out(1,1,text1); /*ekranın 1.satırına sabit yazı 1 karakterden itibaran basılıyor*/
delay_ms(800);
LCD_Cmd(_LCD_CLEAR); /*lcd Ram hafızası siliniyor LCD görüntüsü temizleniyor.*/
}
}
}




DERLEYİCİNİN HATALI OLARAK GÖZTERDİĞİ SATIRLAR;

sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
ADCON1=6;
Başlık: Ynt: MicroC sorunu ?
Gönderen: M_B - 25 Şubat 2012, 11:31:16
ADCON1=6; satırını kaldır.
Cunku 16f628a da ADC yok.
Başlık: Ynt: MicroC sorunu ?
Gönderen: kaypic38 - 25 Şubat 2012, 21:33:09
Teşekkürler ama neden hata veriyor ? adcon1 ve diğer sbit komutlarında yazım yanlışı mı var ?
Başlık: Ynt: MicroC sorunu ?
Gönderen: muhittin_kaplan - 25 Şubat 2012, 21:59:32
16f628 de ADCON1 diye register yok ve sen buraya değer atamaya çalışıyorsun.. hatayı ondan veriyor.
Başlık: Ynt: MicroC sorunu ?
Gönderen: kaypic38 - 25 Şubat 2012, 23:25:00
Hocam olmadığını bende biliyorum bulduğum bir e-kitap da programın temeli aynen böyleydi ayrıca o satırı kaldırınca yine sbit ile başlayan satırları derleyici hatalı olarak gösteriyor.
Başlık: Ynt: MicroC sorunu ?
Gönderen: emosamca - 26 Şubat 2012, 00:37:01
Çünkü sbit lerin altında da ADCON1 satırı var. Onu kaldır.
Başlık: Ynt: MicroC sorunu ?
Gönderen: kaypic38 - 26 Şubat 2012, 09:26:00
Olmuyor işte adcon1=6 satırını kaldırdım yine sbit komutlarını hatalı olarak görüyor derleyici.