4.10

来源:互联网 发布:浮点型数据是什么 编辑:程序博客网 时间:2024/05/21 19:22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mmu.h"
#include "typedef.h"


#include "s3c2451_gpio.h"


#include "S3C2451_uart.h"
#include "S3C2451_irq.h"


#include "S3C2451_vector.h"
//#include "S3C2451_eint.h"




void delay(unsigned int count)
{
int j = 1000;
int i = 0;
while(--j)
for(i =count; i > 0; i --);
}


//void uart0_irq()
//{
//  U8 recv;
//  
//  if(IRQ1_GetSUBPND(SUB_INT_RXD0) == BIT_SET)
// {
//     IRQ1_ClearSUBPND(SUB_INT_RXD0);
//     IRQ1_ClearPND(INT_UART0);
//     recv = UART_ReceiveData(UART0);
// }
//
// if(IRQ1_GetSUBPND(SUB_INT_ERR0) == BIT_SET)
//  {
// IRQ1_ClearSUBPND(SUB_INT_ERR0); 
// }
//
// UART_SendData(UART0,recv);
//}


void eint0_irq()
{    
   IRQ1_ClearPND(INT_EINT0);

   GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
}


void EINT_IRQService_Init(GPIO_Typedef portx,U32 pinx,U32 addr)
{
if(portx == 5)
{
switch(pinx)
{
case GPIO_PIN_0:
pISR_EINT0 = addr;
break;
case GPIO_PIN_1:
pISR_EINT1 = addr;
break;
case GPIO_PIN_2:
pISR_EINT2 = addr;
break;
case GPIO_PIN_3:
pISR_EINT0 = addr;
break;
}
 }
}


void Main()
{
 //   U8 a[15];
//  U8 i = 0,j,k;
//  U8 flag = 0;

 GPIO_Init_Typedef gpio_init_struct;

 UART_Init_Typedef uart_init_struct;

 //MMU初始化:在程序最开始的时候调用
 MMU_Init();


    //gpio(灯3)
 gpio_init_struct.pinx = GPIO_PIN_5;
    gpio_init_struct.mode = GPIO_MODE_OUT;
    gpio_init_struct.udp = GPIO_UDP_DISABLE;
 //(按键0)
gpio_init_struct.pinx = GPIO_PIN_0;
    gpio_init_struct.mode = GPIO_MODE_ALT;
    gpio_init_struct.udp = GPIO_UDP_DISABLE;
 
    //uart
    uart_init_struct.baudrate = 11520;
 uart_init_struct.wordwidth = WordWidth_8BIT;
 uart_init_struct.parity = Parity_No;
 uart_init_struct.stop = STOP_1Bit;
 uart_init_struct.mode = UART_Mode_TX | UART_Mode_RX;  //发送或接收
    UART_Init(UART0,uart_init_struct);  

 GPIO_Init(GPIOB,gpio_init_struct);  


    GPIO_Init(GPIOF,gpio_init_struct);

EINT_IRQService_Init(GPIOF,GPIO_PIN_0,(U32)eint0_irq);  //外部中断
// UART_IRQService_Init(UART0,(U32)uart0_irq);   //注册中断服务程序


    IRQ1_INTMask_Init(INT_EINT0,ENABLE);  //开仆外部中断

// IRQ1_INTMask_Init(INT_UART0,ENABLE); //开启串口中断
// IRQ1_INTSUBMask_Init(SUB_INT_RXD0,ENABLE);   //开启串口子中断


while(1)
  {  
//  GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
//  delay(12000);
//  GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
//  delay(12000);
  }
}
0 0
原创粉丝点击