Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip XC Serisi => Microchip XC8 => Konuyu başlatan: baran123 - 25 Ocak 2015, 23:35:50

Başlık: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: baran123 - 25 Ocak 2015, 23:35:50
18F basit bir projeyi 16F877A ya çevirmeye çalışıyorum.Bir kaç hatayı düzeltemedim.


#define OLED_CS       LATBbits.LATB6
#define TRIS_CS       TRISBbits.TRISB6
#define OLED_DC       LATBbits.LATB7
#define TRIS_DC       TRISBbits.TRISB7


Tanımlamalarını yaptıktan sonra, şu şekilde kullanıma hata veriyor.


TRIS_CS = 0;
TRIS_DC = 0;
OLED_CS = 1;
OLED_DC = 0;


Ayrıca 16F serisi için SPI kütüphanesi var mı ? yoksa yazmak gerekiyor mu ? Çünkü <plib/spi.h> kütüphanesinin açıklamasında 18F için yazıyor.

Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: esensoy - 25 Ocak 2015, 23:43:14
O işlemcide LAT register ı yok, port yapacaksın, bir de hangi satırda hata verdi? 4 satırda da mı?
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: Gökhan BEKEN - 25 Ocak 2015, 23:48:13
Bir register adını yazıp devamına bits yazıp nokta koyduktan sonra ctrl+space yaptığında otomatik tamamlama gelmiyorsa yanlış yazmışsındır, yani o register yoktur.

örn: LATBbits. yazıp ctrl+space yaptığında bir şey gelmemesi lazım 16f877a'da
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: baran123 - 25 Ocak 2015, 23:50:32
Hocam

#define OLED_CS       PORTBbits.RB6
#define TRIS_CS       TRISBbits.TRISB6
#define OLED_DC       PORTBbits.RB7
#define TRIS_DC       TRISBbits.TRISB7

Şöyle yapınca hata verdi yinede
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: esensoy - 25 Ocak 2015, 23:53:20
Arkadaş ne hatası verdi?
Hangi satırda hata verdi?
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: baran123 - 25 Ocak 2015, 23:55:11
SSD1306.c:8: error: (192) undefined identifier "TRISBbits"

hatası veriyor tıklayınca

TRIS_CS = 0;
TRIS_DC = 0;
OLED_CS = 1;
OLED_DC = 0;

bu kısıma geliyor. her satırın altı kırmızı çizgili
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: esensoy - 25 Ocak 2015, 23:56:47
SSD1306.c içine 16F877a başlık dosyasını dahil ediyor musun?
#include "pic16f877a.h"
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: baran123 - 25 Ocak 2015, 23:58:04
Yok artık düzeldi :D
18 lerde etmeyince çalışmıştı ama.
Teşekkürler.
Başlık: Ynt: XC8 "struct/union required" hatası tanımlamaları görmüyor ?
Gönderen: Tagli - 07 Şubat 2015, 23:05:51
Alıntı yapılan: meftun - 25 Ocak 2015, 23:48:13
Bir register adını yazıp devamına bits yazıp nokta koyduktan sonra ctrl+space yaptığında otomatik tamamlama gelmiyorsa yanlış yazmışsındır, yani o register yoktur.
Nadir de olsa bunun istisnaları var. Şimdi aklımda değil ama denk gelmiştim. Galiba 2 seri portu olan dsPIC30F2010'da, ikinci seri port register'ı mı yoktu onun gibi bir şeydi. Sanırım MPLAB'den kaynaklanan bir hata.

Alıntı yapılan: esensoy - 25 Ocak 2015, 23:56:47
SSD1306.c içine 16F877a başlık dosyasını dahil ediyor musun?
#include "pic16f877a.h"
XC serisi derleyicilerde bu yaklaşım yanlış. Doğrusu, kodun başında xc.h'ı eklemektir. Derleyiciye PIC modelinin ne olduğunu MPLAB kendisi söylüyor zaten (tahminimce gizlice bir #define ekliyor).