Прошу помощи в переносе программы с AVR на ARM

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Сб янв 20, 2007 20:44:33
Откуда: Из закаулков вашей души

Сообщение Demon »

В свое время писал для 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; }
Реклама
Нашел транзистор. Понюхал.
Сообщения: 165
Зарегистрирован: Сб янв 20, 2007 20:44:33
Откуда: Из закаулков вашей души

Сообщение Demon »

"Новое" подключение ARM к STM32
WR A.10
RD A.15
CE B.3
CD B.9
RESET B.14
FS B.7

D0 B.0
D1 B.1
D2 B.10
D3 B.11
D4 B.12
D5 B.15
D6 B.14
D7 B.13
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

так можно:

Код: Выделить всё

#define WR_PIN    GPIO_Pin_10

    /* Set WR */
    GPIOA->BSRRL = WR_PIN;
    /* Reset WR */
    GPIOA->BSRRH = WR_PIN;
и т.д.
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Ужос...

Тогда уж так... типа...

Код: Выделить всё

#define LED_ON   (GPIOC->BSRR = GPIO_BSRR_BS8)
#define LED_OFF  (GPIOC->BSRR = GPIO_BSRR_BR8)

#define LCD_CS_SET   (GPIOC->BSRR = GPIO_BSRR_BS0)
#define LCD_CS_RST   (GPIOC->BSRR = GPIO_BSRR_BR0)
#define LCD_RS_SET   (GPIOC->BSRR = GPIO_BSRR_BS1)
#define LCD_RS_RST   (GPIOC->BSRR = GPIO_BSRR_BR1)
#define LCD_WR_SET   (GPIOC->BSRR = GPIO_BSRR_BS2)
#define LCD_WR_RST   (GPIOC->BSRR = GPIO_BSRR_BR2)
Или через BitBand...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

ну а че смущает ... флаг в руки и барабан на грудь..
Это на самом деле настлько несложно, что и не смешно...
Контактная информация:
Реклама
Ответить

Вернуться в «ARM»