问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - se
  • 请问题这是什么原因,ST89C516的单片机,RAM不够?才191

    *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: ARR_KEY_UNIT SEGMENT: ?DT?KEYMODEL *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: KEY_SCT SEGMENT: ?DT?KEYMODEL Program Size: data=191.1 xdata=0 code=6432 Target not created 这几天被这问题弄得头大

    单片机 st89c51 RAM se RS

    746浏览量 3回复量 关注量
  • HC32F030如何实现不用中断更新CCR调节互补PWM占空比?

    因为要使用互补PWM控制H桥来驱动电机,参考HC32F030驱动下的产生互补PWM的例子“HC32F030_DDL_Rev1.2.0\example\timer3\timer3_m23_tpcmp_pwm”,可以产生控制互补PWM占空比控制电机转动。但问题是这种方式需要在定时器溢出中断频繁更新CCR的值,频繁的中断服务程序频繁占用系统处理时间,而我只需要输出互补PWM而已。 尝试在参考例子中关掉中断,使能PWM自动输出。 //stcTim3BaseCfg.pfnTim3Cb = Tim3_LRMotorPWM_Int; //中断函数入口 //Tim3_ClearAllIntFlag(); //清中断标志 //Tim3_Mode23_EnableIrq(Tim3UevIrq); //使能TIM3 UEV更新中断 //EnableNvic(TIM3_IRQn, IrqLevel0, TRUE); //TIM3中断使能 Tim3_M23_EnPWM_Output(TRUE, TRUE); //端口输出使能 应用程序中改变CCR的值,试图改变PWM占空比: Init_LRMotor_PWM(); Tim3_M23_CCR_Set(Tim3CCR0A, 250); Tim3_M23_CCR_Set(Tim3CCR0B, 750); Tim3_M23_CCR_Set(Tim3CCR1A, 250); Tim3_M23_CCR_Set(Tim3CCR1B, 750); Tim3_M23_Run(); Delay_MS(2000); Tim3_M23_Stop(); Delay_MS(2000); Tim3_M23_CCR_Set(Tim3CCR0A, 750); Tim3_M23_CCR_Set(Tim3CCR0B, 250); Tim3_M23_CCR_Set(Tim3CCR1A, 750); Tim3_M23_CCR_Set(Tim3CCR1B, 250); Tim3_M23_Run(); 下载视频

    HC PWM TI se ev

    417浏览量 2回复量 关注量
  • dsPIC33CK256MP508在线仿真出错

    能够正常烧录程序,调试时,出现如下错误,是什么情况。Fatal error: 0xc04 The target device is not ready for debugging. Please check your configuration bit settings and program the device before proceeding. The most common causes for this failure are oscillator and/or PGC/PGD settings.

    仿真 dspic33 ck se ce

    2852浏览量 8回复量 关注量
  • BLE stack 如何获取icall 的命令

    [align=left][size=14px]Hi:[/size][/align][align=left][size=14px]icall 作为BLE App 与Stack 的通讯接口,请问,在Stack 如何获取icall 传来的命令,以及如何执行该命令?[/size][/align][align=left][size=14px]exg:app 调用Gap_GetParamValue, 通过icall 调度该service id,在Stack 如何获取到该命令,以及获取到该命令后,在那个代码部分进行execute?[/size][/align][align=left][size=14px][color=rgb(170, 102, 102)][img]https://e2echina.ti.com/resized-image/__size/2460x0/__key/communityserver-discussions-components-files/103/stack_5F00_exe_5F00_icall.PNG[/img][/color][/size][/align] [list] [*][color=#555555][/color] [/list]

    Stack BLE ic App se

    3463浏览量 1回复量 关注量
  • KF32LS201

    为什么程序执行到 case100 后不会跳到case200 检测不到关机按键按下 求大佬讲解 void POWER_ON_OFF(void) { static uint8_t POWER_ON_OFF_STATUS = 0; static uint32_t DET_COUNT = 0; while(1) { switch(POWER_ON_OFF_STATUS) { case 0: // 开机检测 if(ONOFF_DET == 0)DET_COUNT ++; else DET_COUNT = 0; if(DET_COUNT > 10000) { GPIO_Set_Output_Data_Bits(POWER_LOCK_PORT,POWER_LOCK,Bit_SET); GPIO_Set_Output_Data_Bits(LED1_PORT,LED1,Bit_RESET); POWER_ON_OFF_STATUS =100; DET_COUNT = 0; } break; case 100: if(ONOFF_DET == 0)DET_COUNT=0 ; else DET_COUNT++; if(DET_COUNT > 10000) { POWER_ON_OFF_STATUS = 200; DET_COUNT = 0; } break; case 200: //关机检测 if(ONOFF_DET == 0)DET_COUNT++; else DET_COUNT=0; if(DET_COUNT > 1000000) { GPIO_Set_Output_Data_Bits(POWER_LOCK_PORT,POWER_LOCK,Bit_SET); GPIO_Set_Output_Data_Bits(LED1_PORT,LED1,Bit_RESET); POWER_ON_OFF_STATUS = 250; DET_COUNT = 0; } break; case 250: if(ONOFF_DET == 0)DET_COUNT = 0; else DET_COUNT ++; if(DET_COUNT > 100000) { POWER_ON_OFF_STATUS = 0; DET_COUNT = 0; } break; default:break; } } } 搜索 [align=left]复制[/align]

    se pow Power ST status

    305浏览量 4回复量 关注量
  • msp430f5529 进不了定时器中断

    程序如下,但是进不了中断,有谁知道可以告诉我么? char buffer[255]; int flag = 0,cont = 0; char data[3]= {'0','0','\0'}; uint8_t data1 = 0; uint16_t intialWheelValue = 0; uint16_t wheelValue = 0; FRESULT WriteFile(char* fileName, char* text, WORD size); void TimerB_Init(void); void DataAcq() { char data[3]= {'0','0','\0'}; uint8_t data1 = 0; uint16_t intialWheelValue = 0; uint16_t wheelValue = 0; TimerB_Init(); Dogs102x6_init(); Dogs102x6_clearScreen(); Buttons_interruptEnable(BUTTON_ALL); //按键中断使能 buttonsPressed = 0; intialWheelValue = Wheel_getValue(); // 得到初始齿轮电位计采样值 __enable_interrupt(); //使能全局中断 while(!(buttonsPressed & BUTTON_S2)){ Dogs102x6_stringDraw(3, 45, &data[0], DOGS102x6_DRAW_INVERT); //显示数 wheelValue = Wheel_getValue(); data1 = wheelValue/68; //得到当前齿轮电位计采样值 if (intialWheelValue != wheelValue){ //若当前齿轮电位计采样值与初始齿轮电位计采样值不同,进行小时重置 if (data1 < 10){ data[0] = '0'; data[1] = '0' + data1; } else if (data1 < 20){ data[0] = '1'; data[1] = '0' + (data1 - 10); } else if (data1 < 30){ data[0] = '2'; data[1] = '0' + (data1 - 20); } else if (data1 < 40){ data[0] = '3'; data[1] = '0' + (data1 - 30); } else if (data1 < 50){ data[0] = '4'; data[1] = '0' + (data1 - 40); } else if (data1 < 60){ data[0] = '5'; data[1] = '0' + (data1 - 50); } else { data[0] = '6'; data[1] = '0'; } } } } FRESULT WriteFile(char* fileName, char* text, WORD size) { // Result code FRESULT rc; // File system object FATFS fatfs; // File object FIL fil; UINT bw; // Register volume work area (never fails) f_mount(0, &fatfs); // Open file rc = f_open(&fil, fileName, FA_READ | FA_WRITE | FA_OPEN_ALWAYS); if (rc) { die(rc); } //指针指到文本最后 rc = f_lseek(&fil, f_size(&fil)); if(rc) { die(rc); } // Write to file rc = f_write(&fil, text, size, &bw); if (rc) { die(rc); } // Close the file rc = f_close(&fil); if (rc) { die(rc); } return rc; } /*定时器初始化*/ void TimerB_Init(void) { TB0CCR0 = 32768; TB0CTL = TBSSEL_0+TBCLR+MC_1; // TB0CCTL0 = CCIE; } #pragma vector = TIMERB0_VECTOR __interrupt void Timer_B0(void) { cont = cont+1; if(cont == 1) { cont = 0; flag = 1; buffer[0] = '['; buffer[1] = data[0]; buffer[2] = data[1]; buffer[3] = ']'; WriteFile("1.txt",buffer,4); //写入数据 } }

    MSP430F5529 定时器中断 TE rc se

    113浏览量 1回复量 关注量
  • MSP430F169的ADC12采样率问题

    求高手点拨。 想要使用单通道连续采样,工作在最高采样率。但是用TI的例程实测,采样率都低太多。 时钟用ADC内部振荡器,约5MHz,2个采样周期+13个转换周期,计算下来应该4us左右采一个点。 但是,输入5kHz的正方波——100us高电平, 采下来高电平就采到2、3个值,低电平采到1、2个值,感觉30多us才采了一个点。 IAR编译,自己画的开发板,代码如下: #include #include "..\com\delay.h" #define Num_of_Results 30 static unsigned int results[Num_of_Results]; // Needs to be global in this // example. Otherwise, the // compiler removes it because it // is not used for anything. static unsigned int index = 0; unsigned char ir; void main(void) { WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer /* for test */ P1DIR |= BIT0; // 上电指示 P1OUT |= BIT0; P2DIR |= BIT6; // ADC12CLK P2SEL |= BIT6; // Vref+ 在pin7测试 P5DIR |= 0x70; // P5.6,5,4 outputs P5SEL |= 0x70; // P5.6,5,4 options, ACLK, SMCLK, MCLK /**/ P6SEL |= 0x01; // Enable A/D channel A0 ADC12CTL0 = ADC12ON + SHT0_2 + REFON + MSC; // Turn on ADC12, set sampling time ADC12CTL1 = SHP + CONSEQ_2; // Use sampling timer, single-repeat mode, default: ADC12CLK = ADC12OSC(about 5MHz) ADC12MCTL0 = SREF_1; // Vr+=Vref+ ADC12IE = 0x01; // Enable ADC12IFG.0 delay_ms(20); ADC12CTL0 |= ENC; // Enable conversions ADC12CTL0 |= ADC12SC; // Start conversion _BIS_SR(LPM0_bits + GIE); // Enter LPM0,Enable interrupts } #pragma vector=ADC12_VECTOR __interrupt void ADC12ISR (void) { results[index] = ADC12MEM0; // Move results index = (index+1)%Num_of_Results; // Increment results index, modulo }

    MSP430F169 ADC1 se TI results

    155浏览量 3回复量 关注量
  • 我的捕获程序只能进一次中断怎么办求大神 sos

    void setclock(void) { WDTCTL = WDTPW + WDTHOLD; // watchdog timer setup if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF) { while(1); // If cal constants erased, trap CPU!! } BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation IFG1 &= ~OFIFG; } void settimer(){ TACTL=TACLR; TACTL=TASSEL_2+MC_2; TACCTL1=CM_3+CCIS_0+CAP+CCIE; TACCTL1&=~CCIFG; _EINT(); } void setgpio(){ P1DIR=0X01; P1OUT=0X01; P1SEL=BIT2+BIT1; } void main(void) { setclock(); setgpio(); settimer(); while(1); } #pragma vector=TIMER0_A1_VECTOR __interrupt void Timer_A (void) { if(TACCTL1&CCIFG){ TACCTL1&=CCIFG; //CC=CCR1-C; //C=CCR1; P1OUT^=BIT0; } }

    se AC TI timer hz

    112浏览量 0回复量 关注量
  • M3做UDP接收数据问题 sos

    项目要求多个设备进行网络通信,之前没接触过网络通信,用M3 UIP协议写了UDP通信,接收正常,当开机大概十分钟或网络报文过多就会出现不能正常接收数据,因为设备较多,网络内每秒大概有20~30个报文,报文大概20字节左右!我是直接通过uip_appdata指针获取数据!是不是用后需要清除缓存,发送没问题就接收数据不对! RecDat = (struct DatRec *)uip_appdata; if(.............) {........}发送正确的条件,一开始能正常进入if语句,时间长了就进不去了,看了,数据发的没错! uip_send(&SendDat, sizeof(SendDat)); 应用层接收发送大概就用这两函数!求大神解救啊啊啊!找不到原因啊!

    udp 网络 ip ui se

    126浏览量 0回复量 关注量
  • stm32f0系列进入睡眠模式的困惑

    [color=#222226]使用STM32F030F4P6做产品,[/color][color=#222226]现在是可以进入待机模式,使用RTC唤醒,然后能发送数据工作。[/color] [color=#222226]现在想让产品初始上电后先进入休眠,然后在RTC唤醒后,再发送数据;但是现在只要上电就直接发送数据,然后才进入休眠。[/color] [color=#222226]通过查看PWR->CSR寄存器,看到RM手册中说SBF和WUF位是可以用来判断是否从待机模式中醒来的,但是程序这么做了不起作用,还是上电就发送数据。[/color] [color=#222226]请各位大佬给看看可能因为什么导致的。[/color] [color=#222226]int main(void)[/color] [color=#222226]{[/color] [color=#222226] /* MCU Configuration--------------------------------------------------------*/[/color] [color=#222226] HAL_Init();[/color] [color=#222226] /* Configure the system clock */[/color] [color=#222226] SystemClock_Config();[/color] [color=#222226] [/color] [color=#222226] MX_GPIO_Init(); [/color] [color=#222226] MX_RTC_Init();[/color] [color=#222226] [/color] [color=#222226] RTC_AlarmConfig();[/color] [color=#222226] /* USER CODE BEGIN SysInit */[/color] [color=#222226] if (__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET ) //在此判断SBF标志位,若为1,则表明是被唤醒过[/color] [color=#222226] //if(__HAL_PWR_GET_FLAG(PWR_FLAG_WU)!= RESET)[/color] [color=#222226]{[/color] [color=#222226] __HAL_RCC_GPIOA_CLK_ENABLE();[/color] [color=#222226] MX_SPI1_Init();[/color] [color=#222226] Lora_init();[/color] [color=#222226] //HAL_Delay(10000);[/color] [color=#222226] Read_Ds18b20();[/color] [color=#222226] Lora_SendTemp1();[/color] [color=#222226] }[/color] [color=#222226] __HAL_RCC_PWR_CLK_ENABLE();[/color] [color=#222226] if (__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET)[/color] [color=#222226]{[/color] [color=#222226] __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);[/color] [color=#222226] }[/color] [color=#222226] [/color] [color=#222226] HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);[/color] [color=#222226]if (__HAL_PWR_GET_FLAG(PWR_FLAG_WU) != RESET)[/color][img=0,24]https://img-bbs.csdn.net/upload/202005/26/1590486098_526184.png[/img] [color=#222226] HAL_PWR_EnterSTANDBYMode();[/color] [color=#222226] while (1)[/color] [color=#222226] {[/color] [color=#222226] [/color] [color=#222226] }[/color] [color=#222226]}[/color] [color=#222226]通过查看数据手册,说有2个标志位,一个是用来说明曾进入待机模式;另一个是曾被唤醒过,通过判断这个,认为设备进入过待机模式,那么就可以发送数据;若没进入过,那就先进入待机,不发数据。[/color] [color=#222226]这2个我都尝试了,没起作用,请大家指点。[/color]

    STM32F0 se ni pi ge

    400浏览量 6回复量 关注量
  • 麻烦问一下AD7608可以输出负电压吗?

    [i=s] 本帖最后由 二木不是猫 于 2020-9-29 10:01 编辑 [/i] 看了几遍datasheet还是不太确定想要问一下ad7608可以输入输出负电压吗? 谢谢~ RAR/SER SEL--高电平 RANGE --高电平 REF_SEL--高电平 OS0--低电平 OS1--高电平 OS2--高电平 采样率选取的是:无过采样 时序图是按照这个区配的

    AD 电压 电平 os se

    850浏览量 25回复量 关注量
  • 谁能给解释下MS51FB9AE官方给提供的修改24M主频的函数?

    [i=s] 本帖最后由 taobaofarmer 于 2020-9-12 15:35 编辑 [/i] 官方给提供的例程,在Sample_Code->RegBased->Fsys_MoidfyHIRC->FSYS_MHIRC.C->MODIFY_HIRC(HIRC_24);函数里,该函数我给整理了下,只保留调整主频位24M的功能,代码如下: void Make_HIRC_24MHz(void) { u8 idata hirc_map0, hirc_map1; //Check if power on reset, modify HIRC SFRS = 0; //?1处 IAPAL = 0x38; set_IAPEN; { IAPAH = 0x00; IAPCN = READ_UID; //?2处 set_IAPGO; hirc_map0 = IAPFD; IAPAL++; set_IAPGO; hirc_map1 = IAPFD; } clr_IAPEN; TA = 0xAA; TA = 0x55; { RCTRIM0 = hirc_map0; } TA = 0xAA; TA = 0x55; { RCTRIM1 = hirc_map1; } //禁止低功耗模式 PCON &= CLR_BIT4; } 首先说明这个函数在MS51FB9AE上执行是失败的,大体过程我知道,是从系统默认的配置里读出24M主频的高低字节配置信息,然后写入RCTRIM0和RCTRIM1里,但是在?2处,为何IAPCN的指令是READ_UID呢?这个指令不是读芯片内部96位unique id吗? 另外?1处 SFRS = 0;啥意思,难道是翻到SFR页0的意思吗?如果这是这样的话,SFRS寄存器是有TA保护的,单单SFRS = 0;是不行的呀?

    s51 函数 rc iap se

    1012浏览量 22回复量 关注量
  • 华大芯片中断事件请求序号

    [i=s] 本帖最后由 阳仔很无奈 于 2020-9-8 13:31 编辑 [/i] [img]C:\Users\XuYan\Desktop[/img] 针对定时器A,我想使用他的周期匹配中断,但是他的周期匹配中断的序列号16和17已经被我给了另外两个中断用了,现在我再例程中,将原先的序列号16更换为28,却发现无法正常工作了,这时为什么?

    芯片 RS se top des

    447浏览量 4回复量 关注量
  • 电机小圆版的驱动芯片怎么没资料?

    [b]ELMOS E523.01 系列 马达/运动/点火控制器和驱动器[/b]手册都搜不到。

    电机 驱动芯片 MOS os se

    314浏览量 5回复量 关注量
  • 运放的输出端有一个下拉到地的电阻有什么用?

    [i=s] 本帖最后由 像风儿一样清 于 2020-8-29 21:23 编辑 [/i] 我看见很多运放的电路图上,其输出端都有一个下拉到地的电阻,请问这个电阻是起什么作用的?[img]C:\Users\huist\Desktop\自己的东西[/img]就是下图中的R3.

    运放 电阻 se ST top

    638浏览量 2回复量 关注量
1234下一页