⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samek_bsp.c

📁 S64和VS1003的MP3播放实现的源代码/
💻 C
字号:
#ifdef AT91SAM7S32
#include "AT91SAM7S32.h"
#include "lib_AT91SAM7S32.h"
#endif

#ifdef AT91SAM7S64
#include "AT91SAM7S64.h"
#include "lib_AT91SAM7S64.h"
#endif

#include "SAMEK_BSP.h"

#include "SAMinit.h"
#include "SAMperSYS.h"
#include "SAMperUSART.h"
#include "SAMspi.h"

unsigned int CPU_Freq = MCK;

void SAMEK_LED_OFF(unsigned int led)
{
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, led);
    AT91F_PIO_SetOutput(AT91C_BASE_PIOA, led);
}

void S32EK_LED_ON(unsigned int led)
{
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, led);
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, led);
}

void SAMEK_LED_TOG(unsigned int led)
{
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, led);
    if (AT91F_PIO_GetOutputDataStatus(AT91C_BASE_PIOA) & led)
    {
        AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, led);
    }
    else
    {
        AT91F_PIO_SetOutput(AT91C_BASE_PIOA, led);
    }
}

unsigned int SAMEK_KEY_Input(unsigned int key)
{
    unsigned int key_v = 0;
    
    key_v = AT91F_PIO_GetInput(AT91C_BASE_PIOA);
    key_v = ~key_v;
    key_v &= key;

    return (key_v);
}

void SAMEK_KEY_Init(void)
{
#ifdef AT91SAM7S32_EK
    AT91F_PIO_InputFilterEnable(AT91C_BASE_PIOA, S32EK_KEY_MSK);
    AT91C_BASE_PIOA->PIO_PPUER = S32EK_KEY_MSK;
    AT91F_PIO_CfgInput(AT91C_BASE_PIOA, S32EK_KEY_MSK);

    /* enbale PIOA clock for input */
    AT91F_PIOA_CfgPMC(); 
#endif

#ifdef AT91SAM7S64_EK
    AT91F_PIO_InputFilterEnable(AT91C_BASE_PIOA, S64EK_KEY_MSK);
    AT91C_BASE_PIOA->PIO_PPUER = S64EK_KEY_MSK;
    AT91F_PIO_CfgInput(AT91C_BASE_PIOA, S64EK_KEY_MSK);

    /* enbale PIOA clock for input */
    AT91F_PIOA_CfgPMC(); 
#endif
}

unsigned int SAMEK_RTT_Val(void)
{
    return AT91F_RTTReadValue(AT91C_BASE_RTTC);
}

void SAMEK_Init(void)
{
    SAMPitInit();
    SAMDbguInit();
    SAMspiInit();
/*
    SAMRttInit();
    Usart0Init();

    SAMEK_KEY_Init();

    // all LED off 
#ifdef AT91SAM7S32_EK
    SAMEK_LED_OFF(S32EK_LED_MSK);
#endif

#ifdef AT91SAM7S64_EK
    SAMEK_LED_OFF(S64EK_LED_MSK);
#endif

    Usart0_SendStr("S32EK BSP init done! > USART0.\r\n");
#if USART_PRINT_EN > 0
    SAMEK_USART_print("CPU Freq. = %dHz \r\n", CPU_Freq);
#endif
*/
    AT91F_RSTSetMode(AT91C_BASE_RSTC, (7 << 8) | AT91C_RSTC_URSTEN);
    AT91F_PDC_Close(AT91C_BASE_PDC_DBGU); /* close DBGU PDC */
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -