AVR için S65 LCD (IAR C) driver >>>>to>>>> PIC CCS C

Başlatan GreeN, 18 Mayıs 2011, 16:39:20

GreeN

Arkadaşlar siemens s65 TFT ekran için datasheet vs. aradım ama sadece AVR ile yapılmış bir iki örnek bulabildim.
Örneklerden bir tanesini incelediğimde karşıma çıkan bir iki kod nedir anlayamadım. AVR ve IAR'da hiç çalışmadım.
Acaba aşağıdaki satırlarda ve yapılmak istenmiş. Zamanlamaları çıkarıp CCS C için bir dosya hazırlayacağım. Teşekkürler.

PORTB&=~(1<<RS); //rs rb3 pini olarak tanımlanmış. bu acaba rb3 'ü 0'mı yapıyor. 
PORTB|=(1<<RS); // buda o zaman "lojik 1" yapar. Yada tam tersimi?
SPDR = data; //spi'den data göndermek olsa gerek.
DDRB=0xFF;  // PortB çıkış  TRISB gibimi?
SPCR=(1<<MSTR)|(1<<SPE); // SPI ayarları sanırım MSTR master , 1<<SPE bunu anlayamadım.
SPSR=1; //bunuda anlayamadım

__flash char text0[]= "         DENEME          "; //olayı anladım ama baştaki flash nedir?
Terörü Lanetliyoruz.


GreeN

Cevap için teşekkürler bu siteleri inceledim. ama kod satırında yazan kodların açıklamasını istedim sadece.
Neyse deneme yanılma yoluyla bulacaz artık.
Terörü Lanetliyoruz.

JKramer

#3
http://www.cprogramming.com/tutorial/bitwise_operators.html

Alttaki register'ların ne olduğunu bulmak için ilgili mikrodenetleyicinin kataloğuna bakmak gerekiyor.

Ekleme:
Alıntı YapFlash Variables

The C language was not designed for Harvard architecture processors with separate memory spaces. This means that there are various non-standard ways to define a variable whose data resides in the Program Memory (Flash).

IAR uses a non-standard keyword to declare a variable in Program Memory:
__flash int mydata[] = ....

http://www.nongnu.org/avr-libc/user-manual/porting.html

GreeN

Çoğunu çözdük , kalanını salladım , şimdi sıra denemede.

PORTB&=~(1<<RS); >>> output_low(rs);
PORTB|=(1<<RS); >>> output_high(rs);
__flash char text0[]= "         DENEME          "; >>> Buda anladığım kadarıyla text0 dizinini ram değilde flash'a program memory'ye atıyormuş.
SPDR = data; //spi'den data göndermek .
DDRB=0xFF;  // PortB çıkış  ayarlamak
SPSR=1; //spi enable


????
SPCR=(1<<MSTR)|(1<<SPE); // SPI ayarları sanırım MSTR master , 1<<SPE bunu anlayamadım.
Terörü Lanetliyoruz.