ADV7180_INPUT_CONTROL_REG(0x00): ADV7180_INPUT_CONTROL_AD_PAL_BG_NTSC_J_SECAM(0x00)
ADV7180_AUTODETECT_ENABLE_REG(0x07): ADV7180_AUTODETECT_DEFAULT(0x7f)
ADV7180_EXTENDED_OUTPUT_CONTROL_REG(0x04): ADV7180_EXTENDED_OUTPUT_CONTROL_NTSCDIS(0xC5)
status1: ADV7180_STATUS1_REG(0x10)
ADV7180_ADI_CTRL_REG(0x0e): ADV7180_ADI_CTRL_IRQ_SPACE(0x20)
--------------------------------
AT91SAM IO控制器
2009-05-26 16:33
管理高达32个可编程输入/输出线,每个I/O线可作为通用功能I/O或分配给一个内置外设
引脚复用:每个引脚可配置为通用功能I/O线或一个或两个外设I/O复用的I/O线
电源管理:配置I/O线时钟不用使能,输入变化中断与读引脚电平需要时钟有效
中断产生:PIO控制器为用户外设,中断线连接在中断源2到31间。只有当PIO 控制器时钟使能时才能产生PIO 控制器中断
硬件复位后,默认将PIO 时钟禁用
I/O线或外设功能选择:
PIO_PER (PIO 使能寄存器) //相应的位置位使能时,由PIO 控制器来控制
PIO_PDR (PIO 禁用寄存器) //相应的位禁用时,引脚由PIO_ABSR相应的片上外设选择来控制
PIO_PSR (PIO 状态寄存器)
外设A或B选择:
PIO_ABSR (AB选择状态寄存器) 相应位为0 表示选择外设A ;相应位为1表示选择外设B
PIO_ASR (A 选择寄存器)
PIO_BSR (B选择寄存器)
输出控制:
当作为I/O线时,可通过设置PIO_OER置1引脚输出,PIO_PDR置1引脚输入,状态输出读PIO_OSR;
通过写PIO_SODR置位输出数据,PIO_CODR清零输出数据,PIO_ODSR输出数据状态。
PIO_OER 输出使能 1-输出
PIO_ODR 输出禁用 1-输入
PIO_OSR 输出状态 0-输入 1-输出
PIO_IFER 滤波器使能 1-使能I/O线上毛刺滤波器
PIO_IFDR 滤波器禁用
PIO_IFSR 滤波器状态
PIO_SODR 置位输出数据寄存器
PIO_CODR 清零输出数据寄存器
PIO_ODSR 输出数据状态寄存器
PIO_PDSR 引脚数据状态寄存器 1-I/O线电平为1
PIO_IER 中断使能寄存器
PIO_IDR 中断禁用寄存器
PIO_IMR 中断屏蔽寄存器 1-中断使能
PIO_ISR 中断状态寄存器 1-检测到中断
PIO_MDER PIO多驱动使能寄存器
PIO_MDDR PIO多驱动禁用寄存器
PIO_MDSR 多驱动状态寄存器
PIO_PUER 上拉使能寄存器
PIO_PUDR 上拉禁用寄存器
PIO_PUSR 上拉状态寄存器
PIO_ASR PIO外设A选择寄存器
PIO_BSR PIO外设B选择寄存器
PIO_ABSR 外设AB状态寄存器 0-A 1-B
PIO_OWER 输出写使能寄存器 1-使能I/O线对PIO_ODSR写
PIO_OWDR 输出写禁用寄存器 1-禁用I/O线对PIO_ODSR写
PIO_OWSR 输出写状态寄存器
//----------------例子--------------------------------
测试PIO 单步调试
#include "../Startup/Board.h"
#define LED1 (1<<0) /* PA0 / PGMEN0 & PWM0 TIOA0 48 */
int main()
{
*AT91C_PIOA_PER = LED1; //选择I/O线
*AT91C_PIOA_OER = LED1; //使能输出
*AT91C_PIOA_SODR = LED1; //置位输出 LED1灭
*AT91C_PIOA_CODR = LED1; //清零输出 LED1亮
return 0;
}
----------------------------
如果arm芯片中控制器连接到一个中断源,
isi_interrupt()
{
读取状态位SR
读取掩码
读取状态位 & 掩码
}
阅读(846) | 评论(0) | 转发(0) |