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.
O işlemcide LAT register ı yok, port yapacaksın, bir de hangi satırda hata verdi? 4 satırda da mı?
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
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
Arkadaş ne hatası verdi?
Hangi satırda hata verdi?
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
SSD1306.c içine 16F877a başlık dosyasını dahil ediyor musun?
#include "pic16f877a.h"
Yok artık düzeldi :D
18 lerde etmeyince çalışmıştı ama.
Teşekkürler.
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).