crysislove

    1. chunyang 发表于 2016-3-26 18:53 你这里未必需要真正的随机数发生代码,伪随机足够满足了。
      明白了~:loveliness:
    2. ljj3166 发表于 2016-3-26 18:42 好像是stdio头文件包含进来就可以使用随机函数了吧
      我试试看
    3. chunyang 发表于 2016-3-26 17:13 IO状态不可随机,否则输出的就不是你要的0-9了。可以用你想的按键+定时器的办法来实现伪随机数,最后计算取 ...
      最开始的时候我是想用C语言中的随机函数random来实现的,但是不知道如何调用,在论坛里也找到了一个用random来生成随机数的帖子,但没看明白是怎么调用的
    4. 【MSP430趣谈】MSP430第五讲之库函数的使用 42/19918 微控制器 MCU 2015-12-01
      给楼主点赞{:1_103:}{:1_103:}
    5. 【MSP430趣谈】MSP430第四讲之简谈中断 63/19364 微控制器 MCU 2015-12-01
      本帖最后由 crysislove 于 2015-12-1 18:18 编辑 :)楼主写得很详细~,已经收藏了~:loveliness
    6. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-30
      qiushenghua 发表于 2015-11-28 10:10 又过了近两周,想问问楼主还有下文么?
      一定有下文:),楼主上两周忙着应付期末考试了:surrender:这周才继续:Sad:
    7. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-18
      本帖最后由 crysislove 于 2015-11-19 00:12 编辑
      qiushenghua 发表于 2015-11-18 16:59 过了两天不见楼主重写程序,看样子楼主已经没有在做这个项目了,那么就不上参考代码了。
      首先感谢版主大大上心啊:congratulate:,非常抱歉啊,这两天我一直在忙其他事,所以没有上论坛回复{:1_118:}。然后下面是我对低功耗的认识和了解以及用定时器中断改写的代码请版主指导指导:)。下面这段代码我想要实现的是:当P1.3按键按下不放的时候,P1.0 和P1.6保持亮的状态,当按键松开的时候两个的是灭的状态。代码编译没错,但是下载之后,没有实现上面的功能。 低功耗模式也叫休眠模式是一种间歇式工作方式。通过间歇性的方式来启动和停止系统时钟,就可以开启低功耗模式。 MSP430G2553的CPU有5种工作模式: AM(Active Mode)、LPM0(Low Power Mode 0)、LPM1、LPM2、LPM3。后四种为低功耗模式。有些程序中的CPUOFF也是休眠模式。 LMP0模式:CPU、MCLK停用,SMCLK,ACLK激活。 LMP1模式:CPU、MCLK、如果DCO(数控振荡器)不作为SMCLK源的时候停用,ACLK激活。 LMP2模式;CPU、MCLK、SMCLK、DCO停用。ACLK激活。 LMP3模式:CPU、MCLK、SMCLK、DCO停用。ACLK激活。(与LMP2模式不同的是LMP3模式SR寄存器的SCG0置1了) LMP4模式:CPU、MCLK、SMCLK、DCO、ACLK停用。 常用的模式是LPM0、LPM3。如果想用LMP3模式,在主程序的最后调用内函数_bis_SR_register(LPM3_bits),如果是退出LMP3模式则调用内部函数_bic_SR_register_on_exit(LPM3_bits)。 代码如下: #include "MSP430G2553.h" void WDT_init(); void P1_IODect(); void P13_Onclick(); void main(void) {         WDTCTL = WDTPW + WDTHOLD;         P1DIR |= BIT0+BIT6;         P1OUT |= BIT0;         P1OUT |= BIT6;         P1REN |= BIT3;         P1OUT |= BIT3;         WDTCTL = WDT_ADLY_16;         IE1 |= WDTIE;         _enable_interrupts();         _bis_SR_register(LPM3_bits);                 } #pragma vector=WDT_VECTOR __interrupt void WDT_ISR(void) { P1_IODect(); } void P1_IODect() {     unsigned char KEY_1=0;         if(P1IN&BIT3) //如果BIT3的值为1,                 KEY_1=1;         else KEY_1=0;         while(KEY_1==0)         P13_Onclick(); } void P13_Onclick() //P1.3的事件处理函数 {         P1OUT ^= BIT0;         P1OUT ^= BIT6; }
    8. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-16
      chunyang 发表于 2015-11-16 21:45 看来是MCU了,那就是纯软件问题,多次查询判断状态即可。
      :)恩,谢谢指导
    9. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-16
      曾经in 发表于 2015-11-15 23:55 看一下数据手册有没跳变沿中断(就是上升沿下降沿都产生中断)有的话按下面处理处理, 没有的话要么手动切 ...
      恩,好的,谢谢指导~:)
    10. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-15
      曾经in 发表于 2015-11-15 14:18 还是那句,松手检测
      #include "MSP430G2553.h" //-----在main函数前提前申明函数----- void P1_IODect()        ; void P13_Onclick(); void GPIO_init(); void main(void) {         WDTCTL = WDTPW + WDTHOLD;        //关狗         GPIO_init();                                                                                        //IO初始化         _enable_interrupts();                                                        //使能总中断         _bis_SR_register(LPM3_bits);                                //休眠 } /****************************************************************************************************** * 名       称:GPIO_Init() * 功       能:设定按键和LED控制IO的方向,启用按键IO的上拉电阻 * 入口参数:无 * 出口参数:无 * 说       明:无 * 范       例:无 ******************************************************************************************************/ void GPIO_init() {         //-----设定P1.0和P1.6的输出初始值-----         P1DIR |= BIT0+BIT6;                                //设定P1.0和P1.6为输出         P1OUT |= BIT0;                                                //设定P1.0初值         P1OUT &= ~BIT6;                                        //设定P1.6初值         //-----配合机械按键,启用内部上拉电阻-----         P1REN |= BIT3;                                        //启用P1.3内部上下拉电阻         P1OUT |= BIT3;                                    //将电阻设置为上拉         //-----配置P1.3中断参数-----         P1DIR &= ~BIT3;                    // P1.3设为输入(可省略)         P1IES |= BIT3;                          // P1.3设为下降沿中断         P1IE  |= BIT3 ;                          // 允许P1.3中断 } /****************************************************************************************************** * 名       称:PORT1_ISR() * 功       能:响应P1口的外部中断服务 * 入口参数:无 * 出口参数:无 * 说       明:P1.0~P1.8共用了PORT1中断,所以在PORT1_ISR()中必须查询标志位P1IFG才能知道 *                                          具体是哪个IO引发了外部中断。P1IFG必须手动清除,否则将持续引发PORT1中断。 * 范       例:无 ******************************************************************************************************/ #pragma vector = PORT1_VECTOR __interrupt void PORT1_ISR(void) {         //-----启用Port1事件检测函数-----         P1_IODect();                                                                //检测通过,则会调用事件处理函数            P1IFG=0;                                                    //退出中断前必须手动清除IO口中断标志 } /****************************************************************************************************** * 名       称:P1_IODect() * 功       能:判断具体引发中断的IO,并调用相应IO的中断事件处理函数 * 入口参数:无 * 出口参数:无 * 说       明:该函数兼容所有8个IO的检测,请根据实际输入IO激活“检测代码”。 *                                          本例中,仅有P1.3被用作输入IO,所以其他7个IO的“检测代码”没有被“激活”。 * 范       例:无 ******************************************************************************************************/ void P1_IODect() {         unsigned int Push_Key=0;         //-----排除输出IO的干扰后,锁定唯一被触发的中断标志位-----         Push_Key=P1IFG&(~P1DIR);         //-----延时一段时间,避开机械抖动区域-----         __delay_cycles(10000);                                                        //消抖延时         //----判断按键状态是否与延时前一致-----         if((P1IN&Push_Key)==0)                                 //如果该次按键确实有效    {          //----判断具体哪个IO被按下,调用该IO的事件处理函数-----           switch(Push_Key){ //         case BIT0:        P10_Onclick();                break; //         case BIT1:         P11_Onclick();                break; //         case BIT2:         P12_Onclick();                break;          case BIT3:         P13_Onclick();                break; //         case BIT4:         P14_Onclick();                break; //         case BIT5:         P15_Onclick();                break; //         case BIT6:         P16_Onclick();                break; //         case BIT7:         P17_Onclick();                break;          default:                                                                        break;                //任何情况下均加上default          }    } } /****************************************************************************************************** * 名       称:P13_Onclick() * 功       能:P1.3的中断事件处理函数,即当P1.3键被按下后,下一步干什么 * 入口参数:无 * 出口参数:无 * 说       明:使用事件处理函数的形式,可以增强代码的移植性和可读性 * 范       例:无 ******************************************************************************************************/ void P13_Onclick() {         //-----翻转IO电平-----         P1OUT ^= BIT0;         P1OUT ^= BIT6;         }    我没找到松手检测在哪:surrender:可否指点指点
    11. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-15
      chunyang 发表于 2015-11-14 21:39 那要看后级电路是什么,以及你要求低电平持续多长时间才动作。
      我就是想按键是按下的状态时,P1.0端口输出高电平。按键松开的状态,P1.0输出电平
    12. 按键的下降沿和低电平的问题 16/6223 微控制器 MCU 2015-11-15
      曾经in 发表于 2015-11-14 17:13 一般按键都有加消痘和松手检测的,所以用下降沿有效还是低电平有效 效果上看是没什么区别 你说的低电平有 ...
      恩,就是实现长按键有效:)
    13. 关于MSP430G2553的PWM输出问题 9/6443 微控制器 MCU 2015-11-09
      wangfuchong 发表于 2015-11-9 21:50 够不上,这个问题只是有的文章不在意而已,我的帖子也没什么值得可很值得看的
      现在我的问题是自己看过的范例程序太少了,而且自己看的程序有的还有的有问题:surrender:
    14. 关于MSP430G2553的PWM输出问题 9/6443 微控制器 MCU 2015-11-09
      wangfuchong 发表于 2015-11-9 20:46 能不能同时两个引脚都输入同一个信号还真没试过,按照原理框图好像应该可以,如果有时间较真可以试试,把那 ...
      谢谢指导,我去你的帖子你找找:)
    15. 关于MSP430G2553的PWM输出问题 9/6443 微控制器 MCU 2015-11-08
      ywlzh 发表于 2015-11-8 21:29 我跟你说吧,这个输出PWM已经被定死了的,你要想输出PWM不同占空比,在同一个周期里就一个引脚是TA0.1,另一 ...
      恩,知道了~:)
    16. qiushenghua 发表于 2015-11-8 13:24 来一份文本格式的程序吧,这是提问的常识。 不然人家还得耐心帮你敲一遍程序才能调试结果?
      不好意思,以后不会这样了{:1_138:}
    17. huaiqiao 发表于 2015-11-5 23:13 就是啊,CPU都处于off状态了,当然不行了。具体的怎么产生,当然还是要用到定时器了。@crysislove
      我还是再仔细看看手册吧
    18. 强仔00001 发表于 2015-11-6 22:21 估计是新人
      刚开始学习:loveliness:
    19. 关于G2553 lauchpad 的按键问题 5/2309 微控制器 MCU 2015-11-03
      强仔00001 发表于 2015-11-2 21:09 这个把IO口设置为输入即可
      恩,已经知道了:)
    20. 关于G2553 lauchpad 的按键问题 5/2309 微控制器 MCU 2015-10-31
      cc1989summer 发表于 2015-10-31 09:38 IO设置成输入。就可以读取。
      恩,谢谢帮助:)

最近访客

< 1/1 >

统计信息

已有10人来访过

  • 芯积分:--
  • 好友:--
  • 主题:6
  • 回复:20

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言