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

📄 main.c

📁 atmel官方的at91sam7x256芯片在iar编译环境下的全部演示代码
💻 C
字号:
//  ----------------------------------------------------------------------------
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
//  ----------------------------------------------------------------------------
//  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
//  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
//  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ----------------------------------------------------------------------------
//  File Name           : main.c
//  Object              : main application written in C
//  Creation            : FBr   31-Aug-2005
// ----------------------------------------------------------------------------

#include "main.h"

/* Global variables */
volatile char       test = AT91C_TEST_NOK;

//*----------------------------------------------------------------------------
//* \fn    AT91F_TDES_Handler
//* \brief
//*----------------------------------------------------------------------------
void AT91F_TDES_Handler(void)
{
  volatile unsigned int status;
		
  status = AT91F_TDES_GetStatus(AT91C_BASE_TDES) & AT91F_TDES_GetInterruptMaskStatus(AT91C_BASE_TDES) ;
  AT91F_TDES_DisableIt(AT91C_BASE_TDES,status);

  if(status & AT91C_TDES_DATRDY){
    test = AT91C_TEST_OK;
    TRACE_DEBUG_L("=> DATRDY");
  }

  if(status & AT91C_TDES_ENDRX){
    test = AT91C_TEST_OK;
    TRACE_DEBUG_H("=> ENDRX");
  }
}

//*--------------------------------------------------------------------------------------
//* Function Name       : Main
//* Object              : Software entry point
//*--------------------------------------------------------------------------------------
void main()
{
  ////////////////////////////////////////////////////////////////////////////////////////////////////
  //  DBGU Init
  /////////////////////////////////////////////////////////////////////////////////////////////////////
  // Enable DBGU Clock
  //AT91F_DBGU_CfgPMC();  // DBGU is always clocked
  // Open PIO for DBGU
  AT91F_DBGU_CfgPIO();
  AT91F_US_Configure ((AT91PS_USART) AT91C_BASE_DBGU,
                      AT91C_MASTER_CLOCK,
                      AT91C_US_ASYNC_MODE,  	// mode Register to be programmed
                      AT91C_BAUDRATE_115200,	// baudrate to be programmed
                      0);                   	// timeguard to be programmed
  // Enable Transmitter
  AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);

  TRACE_INFO("\n\n\r======================================\n\r");
  TRACE_INFO("AT91SAM7X Basic TDES\n\r");
  TRACE_INFO("======================================\n\r");

  ///////////////////////////////////////////////////////////////////////////////////////////
  //  Init TDES
  ///////////////////////////////////////////////////////////////////////////////////////////

  // Enable TDES Clock
  AT91F_TDES_CfgPMC();

  // Init TDES Interrupt Source Level
  AT91F_AIC_ConfigureIt(
                        AT91C_BASE_AIC,                        	// AIC base address
                        AT91C_ID_TDES,                         	// TDES ID
                        AT91C_AIC_PRIOR_HIGHEST,               	// Max priority
                        AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, 	    // Level sensitive
                        AT91F_TDES_Handler);

  AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_TDES);

  ///////////////////////////////////////////////////////////////////////////////////////////
  //  Enter Main Application
  ///////////////////////////////////////////////////////////////////////////////////////////

  AT91F_BasicTestSuite();
}

⌨️ 快捷键说明

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