91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-03
  • 語言: 其他
  • 標(biāo)簽:

資源簡介

實現(xiàn)用IO口模擬I2C slave程序,采用中斷處理;

資源截圖

代碼片段和文件信息

/***********************************************************************
Copyright?2008?Si-Power?Co.Ltd.?All?Right?reserved
************************************************************************
?*??IIC?SLAVE??Function?Definitions
?*??gpio?simulate?i2c
?*??適合在i2c時鐘為10k情形,最大可為50K,但此時不能把寫寄存器的操作放到中斷
?*??里面處理,應(yīng)放到外面處理,因為寫CODE寄存器的操作時間比較長;
?*?$Id:?i2c_io.cv?1.0?2012/08/13?15:13:30?liu?Exp?$
?***********************************************************************/
#include?“glb_df.h“
#include?“types.h“
#include?“common.h“
#include?“sys_ctl/sys_ctl.h“
//#include?“apb_timer/apb_timer.h“
#include?“crt.h“
#include?“gpio/sys_gpio.h“
#include?“i2c_io.h“

#ifdef?UART_DEBUG
//#define?UART_DEBUG_KEY
#ifdef?UART_DEBUG_KEY
static?char?c?=?‘I‘;
#endif
#if?0
#define?IDBG(x)?x
#else
#define?IDBG(x)
#endif
#else
#define?IDBG(x)
#endif

extern?void?sys_iomux(int?ioidx);

#ifdef?SIMULUTE_I2C_USED

//add?by?rolly
EN_I2C_STATE?i2c_state?=?NONE_STATE;
U8?i2c_address_buf?=?0;
U8?i2c_address?=?0;
U8?rx_count?=?0;
U8?receve_dat_buf?=?0;
U8?send_dat_buf?=?0;
U8?send_dat_temp?=?0;
U8?receve_dat?=?0;
BOOL?write_finish?=FALSE;
BOOL?read_finish?=?FALSE;
//BOOL?read_finish?=?FALSE;
BOOL?new_data_flag?=?FALSE;
BOOL?new_addr_flag?=?FALSE;
//U8?rx_count_flag;
U8?interrup_count;
uint16?rece_data_buf[150];
U8?buf_count?=?0;
U8?start_count?=?0;
U8?read_count?=0;
U8?stop_count?=?0;
U8?addr_buf[10];
#define?SYS_CODEC_base??(0XFF80)


__attribute__?((section(“.ISR\“ax\““)))
void?i2c_sda_isr()
{
????uint32?reg32_val;

????if(sys_gpiord(I2C_SCL_IO)?==?GPIO_HIGH)
????{
????????i2c_state?=?START_STATE;
????????rx_count?=?0;
????????//start_count++;
????????/*SysReadAMBAReg((SYS_GPIO_IEN)reg32_val);?//disable?interrupt
???? reg32_val?&=?~(1L?<???? SysWriteAMBAReg((SYS_GPIO_IEN)reg32_val);*/
????}
????/*else
????{
????????i2c_state?=?STOP_STATE;
????????stop_count++;
????}
????if(?(sys_gpiord(I2C_SCL_IO)?==?GPIO_HIGH)?&&?(i2c_state?==?NONE_STATE)?)
????{
????????//myptf(“i2c?start!\r\n“);
????????
????????SysReadAMBAReg((SYS_GPIO_IEN)reg32_val);?//disable?interrupt
???? reg32_val?&=?~(1L?<???? SysWriteAMBAReg((SYS_GPIO_IEN)reg32_val);
????}


????if(sys_gpiord(I2C_SCL_IO)?==?GPIO_HIGH)
????{
????????//myptf(“i2c?stop!\r\n“);
????????i2c_state?=?STOP_STATE;
????????SysReadAMBAReg((SYS_GPIO_IEV)reg32_val);?//Falling?edge-trigger
????????reg32_val?&=?~(1L?<????????SysWriteAMBAReg((SYS_GPIO_IEV)reg32_val);
????}*/

}

/*void?i2c_sda_isr1()//falling?inerrupt
{
????uint32?reg32_val;
????
????if?(sys_gpiord(I2C_SCL_IO)?==?GPIO_HIGH?)
????{
????????//myptf(“i2c?start!\r\n“);
????????i2c_state?=?START_STATE;
????????/*SysReadAMBAReg((SYS_GPIO_IEV)reg32_val);?//Rising?edge-trigger
????????reg32_val?|=?(1L?<????????SysWriteAMBAReg((SYS_GPIO_IEV)reg32_val);
????}
}*/

void?i2c_scl_isr1()?//下降沿
{
????switch?(?i2c_state?)
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????11492??2005-08-14?18:17??模擬I2C\i2c_io.c
?????文件?????????752??2005-08-14?16:07??模擬I2C\i2c_io.h
?????目錄???????????0??2005-08-24?10:11??模擬I2C\

評論

共有 條評論

相關(guān)資源