打印
[技术问答]

赛元你的工作能认真点吗?要想冲进名牌厂商能不能摆好姿势?

[复制链接]
1490|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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,用别的办法去描述这些变量


使用特权

评论回复

相关帖子

沙发
xyz549040622| | 2019-6-23 22:06 | 只看该作者
不明觉厉,等待官方的回复

使用特权

评论回复
板凳
黄进盛| | 2019-6-24 08:18 | 只看该作者
不明觉厉

使用特权

评论回复
地板
IslandMain| | 2019-6-24 11:29 | 只看该作者
我们用的不是同一家赛元吗?怎么头文件不一样的

使用特权

评论回复
5
赛元MCU3| | 2019-6-24 11:30 | 只看该作者
您这个是最新的文件吗?请问是demo code 文件中的,还是触控库文件中的 ?

使用特权

评论回复
6
click_lijie|  楼主 | 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.
深圳市赛元微电子有限公司
版本号:  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.
深圳市赛元微电子有限公司
版本号:  V2.0   
日期:  2018.08.24
--------------------------------------------------------------------------*/




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


但是IP1,IE1里面的位变量都没有单独访问机制

使用特权

评论回复
7
赛元MCU3| | 2019-6-25 10:21 | 只看该作者
click_lijie 发表于 2019-6-24 16:33
LB1011应用资料的demo_code
         /*-------------------------------------------------------------- ...

现已查清,原有的资料由于失误,未使用最新的头文件,现已更新。针对部分寄存器不支持单独访问问题,8051内核只有寄存器地址末位为0或者8才支持位操作,其他的寄存器需要通过与或操作进行置位,具体参照规格书SFR映像章节。

使用特权

评论回复
8
赛元MCU3| | 2019-6-25 10:35 | 只看该作者
click_lijie 发表于 2019-6-24 16:33
LB1011应用资料的demo_code
         /*-------------------------------------------------------------- ...

您提及的M0 BSP的方式在8051上是如何实现?不吝赐教。

使用特权

评论回复
9
click_lijie|  楼主 | 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 )

工程结构

工程结构

使用特权

评论回复
10
赛元MCU3| | 2019-6-25 11:27 | 只看该作者
click_lijie 发表于 2019-6-25 10:49
/*IP1*/
//Touch Key 中断优先权选择 0:Touch Key 中断优先权为低  1:Touch Key 中断优先权为高        ...

不胜感激!

使用特权

评论回复
11
songchenping| | 2019-6-25 15:36 | 只看该作者
能及时回应,态度不错啊。

使用特权

评论回复
12
qiangtech| | 2019-6-26 14:23 | 只看该作者
持续进步!

使用特权

评论回复
13
dengzhengbing| | 2019-8-5 11:31 | 只看该作者
严重同意楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

19

帖子

1

粉丝