Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
// USED 8080interface type
void sed1335_write_data(unsigned char data)
{
unsigned char inv_data = ~data;
AT91F_PIO_SetOutput(p_pPio, SED1335_RD);
AT91F_PIO_ClearOutput(p_pPio, SED1335_A0);
AT91F_PIO_ClearOutput(p_pPio, SED1335_WR);
AT91F_PIO_SetOutput(p_pPio, ((unsigned long)data << SED1335_BUSPIN0));
AT91F_PIO_ClearOutput(p_pPio, ((unsigned long)inv_data << SED1335_BUSPIN0));
sed1335_chip_select(TRUE);
delay(SED_1335_DELAY); // !!!
sed1335_chip_select(FALSE);
}
void sed1335_write_command(unsigned char cmd)
{
unsigned char inv_cmd = ~cmd;
AT91F_PIO_SetOutput(p_pPio, SED1335_RD);
AT91F_PIO_SetOutput(p_pPio, SED1335_A0);
AT91F_PIO_ClearOutput(p_pPio, SED1335_WR);
AT91F_PIO_SetOutput(p_pPio, ((unsigned long)cmd << SED1335_BUSPIN0));
AT91F_PIO_ClearOutput(p_pPio, ((unsigned long)inv_cmd << SED1335_BUSPIN0));
sed1335_chip_select(TRUE);
delay(SED_1335_DELAY); // !!!
sed1335_chip_select(FALSE);
}
unsigned char sed1335_read_data()
{
unsigned char data;
AT91F_PIO_SetOutput(p_pPio, SED1335_A0);
AT91F_PIO_SetOutput(p_pPio, SED1335_WR);
AT91F_PIO_ClearOutput(p_pPio, SED1335_RD);
sed1335_chip_select(TRUE);
AT91F_PIO_SetOutput(p_pPio, SED1335_RD);
sed1335_set_bus_dir(SED1335_BUSIN);
data = (unsigned char)(AT91F_PIO_GetInput(p_pPio) >> SED1335_BUSPIN0);
sed1335_set_bus_dir(SED1335_BUSOUT);
sed1335_chip_select(FALSE);
return data;
}
Задержка вводилась изза корявого сед1335 клона RA8535 (или чета типа того, не помню уже)
Составить ответ | Вернуться на конференцию.
Ответы