⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.c

📁 MEGA48单片机模拟/硬件两种方式实现TWI通讯
💻 C
字号:
/************************************************
*    文件名:init.c                              *
*    文件功能:初始化程序,完成寄存器及端口初始化 *
*    作者:xxlxws                                *
*    日期:2007-05-15                            *
*    版本号:1.0                                 *
************************************************/
#include <ioavr.h>
#include <intrinsics.h>
#include "mylib.h"
#include "common.h"
#include "main.h"
#include "init.h"
#include "iic.h"
#include "func.h"
#include "inter.h"

//__root  __flash char   Copyright[]@"CODES"="Copyright@SLen(知道)";

extern struct _Led    Led;
extern struct _Data  Data;
extern struct _Count Count;
extern struct _Moto  Moto_A,Moto_B,Moto_Mid,Moto_HT;

extern uint8 Mass[4];
extern uint8 LedCode[10];
/************************************************
*    函数名:Init                                *
*    入口参数:无                                *
*    出口参数:无                                *
*    作者:xxlxws                                *
*    日期:2007-05-15                            *
*    函数功能:初始化调用                        *
************************************************/
void Init(void)
{
  cli();                                          /*关中断*/
  
/********端口初始化*****************************/
  PORTB = 0x00;
  DDRB  = ~(BIT(PB2));                                   /*输出*/
  PORTC = 0x00;
  DDRC  = ~(BIT(PC5)|BIT(PC4));                   /*SCL(PC5)/SDA(PC4)输入*/
//  PORTC = 0x30;
  PORTD = 0x00;
  DDRD  = 0xff;                                   /*输出*/

/********TWI初始化,从机接收模式****************************/
//  TWBR = 30;                                    /*波特率,32us/bit*/
//  TWSR = BIT(TWPS0);                            /*4分频*/

//  TWAR = TWI_ADDR;
//  TWCR = (BIT(TWEA)|BIT(TWEN));                   /*启动从机接收模式*/
  
  /********变量初始化*****************************/
  Led.Sel[0] = 0xfe;            //LED位选值
  Led.Sel[1] = 0xfd;
  Led.Sel[2] = 0xfb;
  Led.Sel[3] = 0xf7;
  Led.Sel[4] = 0xef;
  
  Data.Key      = 0x00;
  Data.Time     = 0x0a;
  Data.Mode     = 0x00;
  Data.Flag     = 0x00;
  Data.Mass_Max = 0x00;
  Data.Read[0]   = 0x05;
  Data.Read[1]   = 0x04;
  Data.Read[2]   = 0x03;
  Data.Read[3]   = 0x02;
  Data.Read[4]   = 0x01;
  Data.Write[0]   = 0x01;
  Data.Write[1]   = 0x02;
  Data.Write[2]   = 0x03;
  Data.Write[3]   = 0x04;
  Data.Write[4]   = 0x05;

  clrwdt();
  wdt_enable(WDTO_500MS);
//  sei();                                          /*开中断*/
  return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -