Прошу помощи в переносе программы с AVR на ARM
Добавлено: Пт мар 14, 2014 13:59:53
В свое время писал для AVR программу для работы с ЖКИ на T6963c, сейчас попытался перенести код на STM32F103 экран не оживает хотя вроде инициализацию проходит. Вопрос к более опытным товарищам, как более правильно ("красиво") переписать следующие фрагменты:
#define WR PORTB.7
#define RD PORTB.6
#define CE PORTB.5
#define CD PORTB.4
#define RESET PORTB.2
#define FS PORTB.1
#define LCD_PIN PINC
#define LCD_PORT PORTC
#define LCD_DDR DDRC
unsigned char GetStatusLCD(void){
unsigned char i;
LCD_DDR=0x00;
CD=1;
WR=1;
CE=0;
RD=0;
DelayLCD();
i=LCD_PIN;
WR=1;
RD=1;
CE=1;
CD=1;
LCD_DDR=0xFF;
return i; }
void SendLCD(unsigned char cmd,unsigned char bt){
if(cmd) CD=1;
else CD=0;
DelayLCD();
CE=0;
WR=0;
LCD_PORT=bt;
DelayLCD();
CE=1;
WR=1;
CD=1; }
unsigned char ReadLCD(void){
unsigned char i;
LCD_DDR=0x00;
CD=0;
RD=0;
CE=0;
DelayLCD();
i=LCD_PIN;
CE=1;
RD=1;
CD=1;
return i; }
#define WR PORTB.7
#define RD PORTB.6
#define CE PORTB.5
#define CD PORTB.4
#define RESET PORTB.2
#define FS PORTB.1
#define LCD_PIN PINC
#define LCD_PORT PORTC
#define LCD_DDR DDRC
unsigned char GetStatusLCD(void){
unsigned char i;
LCD_DDR=0x00;
CD=1;
WR=1;
CE=0;
RD=0;
DelayLCD();
i=LCD_PIN;
WR=1;
RD=1;
CE=1;
CD=1;
LCD_DDR=0xFF;
return i; }
void SendLCD(unsigned char cmd,unsigned char bt){
if(cmd) CD=1;
else CD=0;
DelayLCD();
CE=0;
WR=0;
LCD_PORT=bt;
DelayLCD();
CE=1;
WR=1;
CD=1; }
unsigned char ReadLCD(void){
unsigned char i;
LCD_DDR=0x00;
CD=0;
RD=0;
CE=0;
DelayLCD();
i=LCD_PIN;
CE=1;
RD=1;
CD=1;
return i; }