📄 bsp.h
字号:
/*
*********************************************************************************************************
* MICRIUM BOARD SUPPORT SUPPORT
*
* (c) Copyright 2003-2006; Micrium, Inc.; Weston, FL
*
* All rights reserved. Protected by international copyright laws.
* Knowledge of the source code may NOT be used to develop a similar product.
* Please help us continue to provide the Embedded community with the finest
* software available. Your honesty is greatly appreciated.
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*
* BOARD SUPPORT PACKAGE
*
* NXP LPC2468
* on the
* Embedded Artists LPC2468 OEM Board
*
* Filename : bsp.h
* Version : V1.00
* Programmer(s) : Brian Nagel
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* MODULE
*
* Note(s) : (1) This header file is protected from multiple pre-processor inclusion through use of the
* BSP present pre-processor macro definition.
*********************************************************************************************************
*/
#ifndef BSP_PRESENT
#define BSP_PRESENT
/*
*********************************************************************************************************
* EXTERNS
*********************************************************************************************************
*/
#ifdef BSP_MODULE
#define BSP_EXT
#else
#define BSP_EXT extern
#endif
/*
*********************************************************************************************************
* INCLUDES
*********************************************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
#include <cpu.h>
#include <lib_def.h>
#include <lib_mem.h>
#include <lib_str.h>
#include <iolpc2468.h>
#include <app_cfg.h>
#include <ucos_ii.h>
#if APP_OS_PROBE_EN
#include <os_probe.h>
#endif
#include "keypad.h"
/*
*********************************************************************************************************
* DEFINES
*********************************************************************************************************
*/
#define MAIN_OSC_FRQ 12000000L
#define IRC_OSC_FRQ 4000000L
#define RTC_OSC_FRQ 32768L
/*
*********************************************************************************************************
* PCLK PERIPHERAL IDS
* (see 'BSP_CPU_PclkFreq()')
*********************************************************************************************************
*/
#define PCLK_WDT 0
#define PCLK_TIMER0 1
#define PCLK_TIMER1 2
#define PCLK_UART0 3
#define PCLK_UART1 4
#define PCLK_PWM0 5
#define PCLK_PWM1 6
#define PCLK_I2C0 7
#define PCLK_SPI 8
#define PCLK_RTC 9
#define PCLK_SSP1 10
#define PCLK_DAC 11
#define PCLK_ADC 12
#define PCLK_CAN1 13
#define PCLK_CAN2 14
#define PCLK_ACF 15
#define PCLK_BAT_RAM 16
#define PCLK_GPIO 17
#define PCLK_PCB 18
#define PCLK_I2C1 19
#define PCLK_SSP0 21
#define PCLK_TIMER2 22
#define PCLK_TIMER3 23
#define PCLK_UART2 24
#define PCLK_UART3 25
#define PCLK_I2C2 26
#define PCLK_MCI 27
#define PCLK_SYSCON 29
#define PCA9551_ADDRESS 0xC0
#define SA56004_ADDRESS 0x96
#define PCA9555_ADDRESS 0x40
#define INTERNAL 0
#define EXTERNAL 1
#define KPAD_NB_ROW 6
#define KPAD_NB_COLUMN 6
/*Keypad defines*/
#define P1_KPAD_COLUMN 0x3F // 6 columns P1[0] to P1[5]
#define P1_KPAD_COLUMN_MASK 0xC0
#define P1_KPAD_ROW_OUT_REG 0xC0 // column configured as output
#define P0_KPAD_ROW 0x3F // 6 rows P0[0] to P0[5]
#define P0_6_BACKLIGHT 0x40 // P0[6] used for backlight control
#define P0_6_BACKLIGHT_OUT_REG 0xBF // P0[6] configured as output
#define P0_7_LED 0x80 // P0[7] used for LED control
#define P0_7_LED_OUT_REG 0x7F // P0[7] configured as output
#define P1_7_6_LED 0xC0 // P1[7:6] used for LED control
#define P1_7_6_LED_OUT_REG 0x3F // P1[7:6] configured as output
/*
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*/
extern CPU_INT08U I2C_Read_Counter ;
extern CPU_INT08U I2C_Write_Counter ;
extern CPU_INT08U Keypad_Data_Read;
extern CPU_INT08U Column_Value ;
extern CPU_INT08U Row_Counter;
extern CPU_INT08U Row_Found ;
extern CPU_INT08U Row_Value;
extern CPU_INT08U Brightness_Global;
/*
*********************************************************************************************************
* MACRO'S
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void BSP_Init (void);
void BSP_IntDisAll (void);
CPU_INT32U BSP_CPU_ClkFreq (void);
CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
/*
*********************************************************************************************************
* KEYPAD SERVICES
*********************************************************************************************************
*/
void Keypad_Init(void);
void Keypad_Write(CPU_INT08U Reg_Ptr, CPU_INT08U Data_Write);
CPU_INT08U Keypad_Read(void);
void Decode_Column(void);
void Decode_Row(void);
CPU_INT08U Keypad_Decoder (void);
CPU_INT08U Keypad_Map(void);
/* LED SERVICES
*********************************************************************************************************
*/
void LED_On (CPU_INT08U led);
void LED_Off (CPU_INT08U led);
void LED_Toggle (CPU_INT08U led);
/*
*********************************************************************************************************
* TEMP SERVICES
*********************************************************************************************************
*/
void Temperature_Reading(CPU_INT08S *integer,CPU_INT08U *decimal, CPU_INT08S Temp_Type);
/*
*********************************************************************************************************
* PWM SERVICES
*********************************************************************************************************
*/
void Piezo_Set(CPU_INT32U cycle);
void Piezo_Stop( void );
CPU_INT08U Piezo_Start(CPU_INT08U duration);
void PWW_PiezoInit (void);
void PiezoDurationHandler();
/*
*********************************************************************************************************
* VFD SERVICES
*********************************************************************************************************
*/
void VFD_Init(void);
void DispDataWr (CPU_INT08U data);
/*
*********************************************************************************************************
* PUSH BUTTON SERVICES
*********************************************************************************************************
*/
CPU_BOOLEAN PB_GetStatus (CPU_INT08U pb);
/*
*********************************************************************************************************
* External Interrupt Init (used by the keypad)
*********************************************************************************************************
*/
void EINT_Init(void);
/*
*********************************************************************************************************
* ADC SERVICES
*********************************************************************************************************
*/
CPU_INT16U ADC_GetStatus (CPU_INT08U adc);
/*
*********************************************************************************************************
* TICK SERVICES
*********************************************************************************************************
*/
void Tmr_TickISR_Handler(void);
void Tmr_TickInit (void);
/*
*********************************************************************************************************
* I2C SERVICES
*********************************************************************************************************
*/
void I2C_Init (void);
void I2C_Read (CPU_INT08U address,
CPU_INT08U *p_buf,
CPU_INT08U count);
void I2C_ReadReg (CPU_INT08U address,
CPU_INT08U *p_buf,
CPU_INT08U count,
CPU_INT08U reg);
void I2C_Write (CPU_INT08U address,
CPU_INT08U *p_buf,
CPU_INT08U count);
void I2C_ISR_Handler (void);
/*
*********************************************************************************************************
* LCD LIGHT SERVICES
*********************************************************************************************************
*/
void LCD_LightOn (void);
void LCD_LightOff (void);
void LCD_LightToggle (void);
/*
*********************************************************************************************************
* OTHER SERVICES
*********************************************************************************************************
*/
void SDRAM_Init (void);
void NOR_Init (void);
void NAND_Init (void);
/*
*********************************************************************************************************
* RS-232 SERVICES
*********************************************************************************************************
*/
void Ser_Init (CPU_INT08U COM);
void Ser_WrByte (CPU_CHAR tx_byte, CPU_INT08U COM);
void Ser_WrStr (CPU_CHAR *tx_str, CPU_INT08U COM);
CPU_INT08U Ser_RdByte (CPU_INT08U COM);
void Ser_RdStr (CPU_CHAR *rx_str,
CPU_INT32U len,
CPU_INT08U COM);
void Ser_Printf (CPU_CHAR *format, ...);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -