ARM中断编写及UART发送
来源:互联网 发布:捷易通软件 编辑:程序博客网 时间:2024/05/22 17:40
//使用的是三星的s5pc100开发板
#include "s5pc100.h"
#define WKUP_INT0_7_CON *((int*)0xE0300E00)
#define WKUP_INT0_7_MASK *((int*)0xE0300F00)
#define WKUP_INT0_7_PEND *((int*)0xE0300F40)
#define VICADDRESS *((int*)0xE4000F00)
void uart_init(void)
{
GPA0.GPA0CON = 0x2222;
UART0.ULCON0 = 0x3;
UART0.UCON0 = 0x5;
UART0.UBRDIV0 = 35;
UART0.UDIVSLOT0 = 0x5555;
UART0.UINTM0 = 0xf;
}
void putc(char c)
{
while( !(UART0.UTRSTAT0 & 1<<1) );
UART0.UTXH0 = c;
}
void puts(const char *p)
{
while(*p)
{
putc(*p);
if('\n' == *p)
putc('\r');
p++;
}
}
void isr_key(void)
{
puts("key pres !\n");
WKUP_INT0_7_PEND |= 1<<1;
}
void irq_init(void)
{
GPH0.GPH0CON = 0x20;//下载沿触发
WKUP_INT0_7_CON = 0x20;//唤醒该中断位
WKUP_INT0_7_MASK = 0; //关闭中断屏蔽
VIC0INTERRUPT.VIC0INTENABLE = 0x2; //VIC0中断控制器使能开启
VIC0VECTADDR.VIC0VECTADDR1 = (int)isr_key; //装入中断服务程序地址
}
void do_irq(void)
{
//who
((void (*)(void ) )VICADDRESS)();
}
int main()
{
uart_init();
irq_init();
while(1);
}
0 0
- ARM中断编写及UART发送
- UART中断方式发送无反应
- Zstack之uart中断方式数据发送
- ARM 异常及中断
- TQ2440-UART(查询及中断方式)
- K7i ARM开发板源码之UART通信(中断方式)
- uart中断
- dsPIC33F串口通讯中断接收发送数据-UART
- AVR USART(UART)发送中断程序 使用缓冲器
- ARM中断及相关寄存器
- ARM中断处理及状态机嵌套实现
- arm的中断及模式(小结9)
- 3.ARM异常中断处理及编程
- S3C2440 UART中断方式
- EK-TM4C123GXL UART 中断
- UART-中断模式
- 嵌入式ARM 中断 IRQ代码编写 基于S5pv210
- 信号发送及可中断睡眠和不可中断睡眠
- servlet知识点,getId(),getValue()和getAttribute()区别?
- 怎样在Eclipse关联JDK源代码?
- MKNetworkKit框架入门及简单用法
- TCP协议的那些事儿 上篇
- Ubuntu下用PyCharm 运行调试 Odoo 8.0 可能存在的问题
- ARM中断编写及UART发送
- Linux负载均衡软件LVS之二(安装篇)
- Zabbix监控系统深度实践
- TCP协议哪些事儿 下篇
- ajax没问题,但是提交不到对应的action
- list,set,map,数组间的相互转换
- ocx控件ie调试
- 线路电流声处理方法
- Effective JavaScript Item 23 永远不要修改arguments对象