📄 mcu_hw_config.c
字号:
/****************************************************************************
*File:
*Purpose: contains 'drivers' for the GPIO pins
****************************************************************************/
#include "mcu_hw_config.h"
#include "drivers.h"
#include "MC13192_regs.h"
void MCU_LOW_POWER_WHILE()
{
/* Execute the stop instruction */
asm (stop #0x2000);
}
//change for HHCF521X-KIRIN by michael chen
void PortInit(void)
{
/*Set for wait mode*/
MCF_PMM_LPCR = 0
| MCF_PMM_LPCR_LPMD_WAIT
| MCF_PMM_LPCR_STPMD(0x0);
/*Set for interrupt level so txcvr can bring out of wait mode*/
MCF_PMM_LPICR = 0
| MCF_PMM_LPICR_XIPL(0)
| MCF_PMM_LPICR_ENBSTOP;
MCF_GPIO_PQSPAR = (0
| MCF_GPIO_PQSPAR_PQSPAR2(1)
| MCF_GPIO_PQSPAR_PQSPAR1(1)
| MCF_GPIO_PQSPAR_PQSPAR0(1));
/* initialize the mode register */
MCF_QSPI_QMR = (0
| MCF_QSPI_QMR_MSTR
| MCF_QSPI_QMR_DOHIE
| MCF_QSPI_QMR_BITS(16)
| MCF_QSPI_QMR_BAUD(0xa) );
/* initialize QSPI wrap register */
MCF_QSPI_QWR = (0
| MCF_QSPI_QWR_CSIV);
/*Initialize Command Ram*/
MCF_QSPI_QAR = 0x20; /*points to the command ram*/
MCF_QSPI_QDR = 0x4000; /*initialize CR for 16 bit xfer*/
MCF_QSPI_QIR = 0xD00F;
/*
* Set ports QS and ports UB for GPO function 4 pins total
*/
/*Data direction*/
MCF_GPIO_DDRQS = (0
| MCF_GPIO_DDRQS_DDRQS6 /*cs3*/
| MCF_GPIO_DDRQS_DDRQS5 /*cs2, cs*/
| MCF_GPIO_DDRQS_DDRQS4 /*cs1, RESET*/
| MCF_GPIO_DDRQS_DDRQS3); /*CS0*/
/*port data*/
MCF_GPIO_PORTQS = (0
| MCF_GPIO_PORTQS_PORTQS6
| MCF_GPIO_PORTQS_PORTQS5 /*cs2, cs*/
| MCF_GPIO_PORTQS_PORTQS3);
/*Pin assigments*/
MCF_GPIO_PUBPAR = (0
| MCF_GPIO_PUBPAR_PUBPAR3(0) /*CTS1*/
| MCF_GPIO_PUBPAR_PUBPAR2(0)); /*RTS1*/
/*Data direction*/
MCF_GPIO_DDRUB = (0
| MCF_GPIO_DDRUB_DDRUB3
| MCF_GPIO_DDRUB_DDRUB2);
/*port data*/
MCF_GPIO_PORTUB = (0
| MCF_GPIO_PORTUB_PORTUB3
| MCF_GPIO_PORTUB_PORTUB2);
/* Set up the interrupt to be falling edge on IRQ1*/
MCF_EPORT_EPPAR |= MCF_EPORT_EPPAR_EPPA1_FALLING;
/* Set up all pins as input*/
MCF_EPORT_EPDDR = (0x0);
/* allow interrupts from IRQ1*/
MCF_EPORT_EPIER |= MCF_EPORT_EPIER_EPIE1;
DeAssertRESET();
SPIDrvWrite(0x00, 0x0000);/*soft reset*/
while(!(MCF_EPORT_EPFR & 0x02));
MCF_EPORT_EPFR = (0xFE);
SPIDrvRead(STATUS_ADDR);
MCF_INTC_IMRL &= (0
| (~(MCF_INTC_IMRL_MASKALL) & ~(MCF_INTC_IMRL_MASK1 )));
}
void AssertRESET(void)
{
MCF_GPIO_PORTQS = (MCF_GPIO_PORTQS & 0xEF);
}
void DeAssertRESET(void)
{
MCF_GPIO_PORTQS = (MCF_GPIO_PORTQS | 0x10);
}
void AssertATTN(void)
{
MCF_GPIO_PORTUB = (MCF_GPIO_PORTUB & 0xF7);
}
void DeAssertATTN(void)
{
MCF_GPIO_PORTUB = (MCF_GPIO_PORTUB | 0x08);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -