打印

[技能问答] 赛元你的作业能仔细点吗?要想冲进名牌厂商能不能摆好姿态?

[仿制链接]
433|11
跳转到指定楼层
楼主
本帖最终由 click_lijie 于 2019-6-23 20:26 修改

头文件描绘的硬件都不全,以SC92F846X_C.H为例.
/*IP*/
sbit         IPADC   = IP^6;                //ADC中止优先操控位        0:设定 ADC的中止优先权是 “低”                1:设定 ADC的中止优先权是 “高”
sbit         IPT2          = IP^5;                //PWM中止优先操控位        0:设定 PWM的中止优先权是 “低”                1:设定 PWM 的中止优先权是 “高”
sbit        IPUART        = IP^4;                //SIF中止优先操控位        0:设定 SIF的中止优先权是 “低”                1:设定 SIF的中止优先权是 “高”
sbit        IPT1          = IP^3;                //Timer1中止优先操控位        0:设定 Timer 1的中止优先权是 “低”        1:设定 Timer 1的中止优先权是 “高”
sbit        IPINT1        = IP^2;                //32K Base Timer中止优先操控位                0:设定 32K的中止优先权是 “低”                1:设定 32K的中止优先权是 “高”
sbit        IPT0          = IP^1;                //Timer0中止优先操控位        0:设定 Timer 0的中止优先权是 “低”        1:设定 Timer 0的中止优先权是 “高”
sbit        IPINT0        = IP^0;   //INT0 计数器中止优先权挑选 . 0:INT0 中止优先权为低  ;1:INT0 中止优先权为高  

/*IE*/
sbit         EA            = IE^7;                //中止使能的总操控        0:封闭一切的中止        1:翻开一切的中止
sbit         EADC          = IE^6;                //ADC中止使能操控        0:封闭ADC中止                1:翻开ADC中止
sbit         ET2           = IE^5;                //PWM中止使能操控        0:封闭PWM中止                1:翻开PWM中止
sbit        EUART         = IE^4;                //UART中止使能操控        0:封闭SIF中止                1:翻开SIF中止
sbit         ET1           = IE^3;                //Timer1中止使能操控        0:封闭TIMER1中止        1:翻开TIMER1中止
sbit        EINT1          = IE^2;                //32K Base Timer中止使能操控        0:封闭32K中止                1:翻开32K中止        
sbit         ET0            = IE^1;                //Timer0中止使能操控        0:封闭TIMER0中止        1:翻开TIMER0中止
sbit        EINT0          = IE^0;                //TouchKey的中止使能操控        0:封闭TouchKey中止  1:翻开TouchKey中止

其间IP1和IE1都没有要学一下M0的BSP,用其他方法去描绘这些变量


沙发
| 2019-6-23 22:06 | 只看该作者
不明觉厉,等候官方的回复
板凳
| 2019-6-24 08:18 | 只看该作者
不明觉厉
地板
| 2019-6-24 11:29 | 只看该作者
咱们用的不是同一家赛元吗?怎样头文件不一样的
5
| 2019-6-24 11:30 | 只看该作者
您这个是最新的文件吗?请问是demo code 文件中的,仍是触控库文件中的 ?
6
 楼主 | 2019-6-24 16:33 | 只看该作者
本帖最终由 click_lijie 于 2019-6-24 16:40 修改
赛元MCU3 宣布于 2019-6-24 11:30
您这个是最新的文件吗?请问是demo code 文件中的,仍是触控库文件中的 ?

LB1011运用材料的demo_code
         /*--------------------------------------------------------------------------
SC92F846X_C.H

C Header file for SC92F846X microcontroller.
Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd.
All rights reserved.
深圳市赛元m88明升有限公司
版本号:  V0.1   
日期:  2018.01.10
--------------------------------------------------------------------------*/

看了其他材料有,可是
/*--------------------------------------------------------------------------
SC92F846XB_C.H

C Header file for SC92F846XB microcontroller.
Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd.
All rights reserved.
深圳市赛元m88明升有限公司
版本号:  V2.0   
日期:  2018.08.24
--------------------------------------------------------------------------*/




/*interrupt*/
sfr     IP1     = 0XB9;     //中止优先级操控寄存器1
sfr         IP            = 0xB8;                //中止优先权操控寄存器
sfr         IE            = 0xA8;                //中止操控寄存器
sfr     IE1     = 0XA9;          //中止操控寄存器1


可是IP1,IE1里面的位变量都没有独自拜访机制

7
| 2019-6-25 10:21 | 只看该作者
click_lijie 宣布于 2019-6-24 16:33
LB1011运用材料的demo_code
         /*-------------------------------------------------------------- ...

现已查清,原有的材料因为失误,未运用最新的头文件,现已更新。针对部分寄存器不支撑独自拜拜访题,8051内核只要寄存器地址末位为0或许8才支撑位操作,其他的寄存器需求经过与或操作进行置位,详细参照规格书SFR映像章节。

8
| 2019-6-25 10:35 | 只看该作者
click_lijie 宣布于 2019-6-24 16:33
LB1011运用材料的demo_code
         /*-------------------------------------------------------------- ...

您提及的M0 BSP的方法在8051上是怎么完成?不吝赐教。
9
 楼主 | 2019-6-25 10:49 | 只看该作者
本帖最终由 click_lijie 于 2019-6-25 10:53 修改
赛元MCU3 宣布于 2019-6-25 10:35
您提及的M0 BSP的方法在8051上是怎么完成?不吝赐教。


/*IP1*/
//Touch Key 中止优先权挑选 0:Touch Key 中止优先权为低  1:Touch Key 中止优先权为高                                                                     
#define IP1_PRIORITY_TK_Pos                 (4)                          // IE1::ETK :ETK Position  
#define IP1_PRIORITY_TK_MSK                 (0x1 << IP1_PRIORITY_TK_Pos)    // IE1::ETK :ETK Mask   

///INT2 计数器中止优先权挑选 0:INT2 中止优先权为低  1:INT2 中止优先权 “高”                                                                           
#define IP1_PRIORITY_INT2_Pos               (3)                          // IE1::EINT2 :EINT2 Position  
#define IP1_PRIORITY_INT2_MSK               (0x1 << IP1_PRIORITY_INT2_Pos ) // IE1::EINT2 :EINT2 Mask   

//Base Timer 中止优先权挑选 0:Base Timer 中止优先权为低  1:Base Timer 中止优先权为 “高”                                                            
#define IP1_PRIORITY_BASE_TIMER_Pos         (2)                               // IE1::EBTM :EBTM Position  
#define IP1_PRIORITY_BASE_TIMER_MSK         (0x1 << IP1_PRIORITY_BASE_TIMER_Pos) // IE1::EBYM :EBTM Mask   

//PWM中止优先操控位        0:设定 PWM的中止优先权是 “低”        1:设定 PWM的中止优先权是 “高”                                                                    
#define IP1_PRIORITY_PWM_Pos               (1)                               // IE1::ESSI :ESSI Position  
#define IP1_PRIORITY_PWM_MSK               (0x1 << IP1_PRIORITY_PWM_Pos) // IE1::ESSI :ESSI Mask   

//三合一串口中止优先权挑选 . 0 中止优先权为低  ;1:中止优先权为高                                                                                       
#define IP1_PRIORITY_SSI_Pos               (1)                               // IE1::ESSI :ESSI Position  
#define IP1_PRIORITY_SSI_MSK               (0x1 << IP1_PRIORITY_SSI_Pos) // IE1::ESSI :ESSI Mask   

/*IE*/
sbit         EA            = IE^7;                //中止使能的总操控        0:封闭一切的中止        1:翻开一切的中止
sbit         EADC          = IE^6;                //ADC中止使能操控        0:封闭ADC中止                1:翻开ADC中止
sbit         ET2           = IE^5;                //PWM中止使能操控        0:封闭PWM中止                1:翻开PWM中止
sbit        EUART         = IE^4;                //UART中止使能操控        0:封闭SIF中止                1:翻开SIF中止
sbit         ET1           = IE^3;                //Timer1中止使能操控        0:封闭TIMER1中止        1:翻开TIMER1中止
sbit        EINT1          = IE^2;                //32K Base Timer中止使能操控        0:封闭32K中止                1:翻开32K中止        
sbit         ET0            = IE^1;                //Timer0中止使能操控        0:封闭TIMER0中止        1:翻开TIMER0中止
sbit        EINT0          = IE^0;                //TouchKey的中止使能操控        0:封闭TouchKey中止  1:翻开TouchKey中止



/*IE1*/
//Touch Key 中止使能.      0:封闭 Touch Key 中止 ;  1:翻开 Touch Key  中止 操控  
#define IE1_ENINT_TK_Pos                 (4)                          // IE1::ETK :ETK Position  
#define IE1_ENINT_TK_MSK                 (0x1 << IE1_ENINT_TK_Pos)    // IE1::ETK :ETK Mask   

//外部中止 2 使能操控.     0:封闭 INT2 中止  ;      1:翻开 INT2 中止
#define IE1_ENINT_INT2_Pos               (3)                          // IE1::EINT2 :EINT2 Position  
#define IE1_ENINT_INT2_MSK               (0x1 << IE1_ENINT_INT2_Pos ) // IE1::EINT2 :EINT2 Mask   

//Base Timer 中止使能操控. 0: 封闭 Base Timer 中止 ;1: 答应 Base Timer 中止
#define IE1_ENINT_BASE_TIMER_Pos         (2)                               // IE1::EBTM :EBTM Position  
#define IE1_ENINT_BASE_TIMER_MSK         (0x1 << IE1_ENINT_BASE_TIMER_Pos) // IE1::EBYM :EBTM Mask   

//PWM 中止使能操控         0:封闭 PWM 中止 ;1:答应 PWM 计数溢出(数到 PWMPRD)时发生中止
#define IE1_ENINT_PWM_Pos                (1)                               // IE1::EPWM :EPWM Position  
#define IE1_ENINT_PWM_MSK                (0x1 << IE1_ENINT_PWM_Pos ) // IE1::EPWM :EPWM Mask   

//三合一串口中止使能操控.  0: 封闭串口中止   ;      1: 答应串口中止  
#define IE1_ENINT_SSI_Pos                (1)                               // IE1::ESSI :ESSI Position  
#define IE1_ENINT_SSI_MSK                (0x1 << IE1_ENINT_SSI_Pos) // IE1::ESSI :ESSI Mask   




这样运用
IP1 = IP1 & (~IP1_PRIORITY_TK_MSK);

过一周吧,我会奉上完好模板工程.

赛元.png (347.57 KB, 下载次数: 0)

工程结构

工程结构
10
| 2019-6-25 11:27 | 只看该作者
click_lijie 宣布于 2019-6-25 10:49
/*IP1*/
//Touch Key 中止优先权挑选 0:Touch Key 中止优先权为低  1:Touch Key 中止优先权为高        ...

不胜感激!
11
| 2019-6-25 15:36 | 只看该作者
能及时回应,情绪不错啊。
12
| 2019-6-26 14:23 | 只看该作者
继续前进!
扫描二维码,随时随地手机跟帖
您需求登录后才能够回帖 登录 | 注册

本版积分规矩

我要发帖 投诉主张 创立版块 请求版主

快速回复

您需求登录后才能够回帖
登录 | 注册
高档形式

论坛热帖

在线客服 快速回复 回来顶部 回来列表