-
扎原因扎结果 sos
[b]//代码如下[/b] #include
#include //#include //#include #include #define SEG_BITSEL_PORT PORTD //位选端口 #define SEG_BITSEL_PORT_DIR TRISD //位选端口的方向寄存器 #define SEG_FONT_PORT PORTC //字形输出端口 #define SEG_FONT_PORT_DIR TRISC //字形输出端口的方向寄存器 #define DLY_MS 67 const char Seg7TableN[]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000}; //__CONFIG(FOSC_HS & WDTE_ON & PWRTE_OFF & BOREN_ON & LVP_ON & CPD_OFF & WRT_OFF & CP_OFF); //__CONFIG (XT & WDTDIS & LVPDIS); unsigned int g_ADRTable[12] = {0,0,0,0,0,0,0,0,0,0,0 }; unsigned char g_Count=0; bit OverFlag = 0;//12位转换次数完成标志位清零; void delayms (int ms); void DisplayData (unsigned int iData); interrupt ISR (void) { if ( ADIE && ADIF ) { ADIF = 0; g_ADRTable[g_Count]=(((unsigned int)ADRESH)<<8)+ADRESL; g_Count++; if(g_Count==12) { g_Count =0; OverFlag=1;// } else { GO_DONE = 1;//启动AD } } else { while(1); } } void main(void) { //void DisplayData(); char i=0,j=0; int tmp = 0;// int adc_v = 0; TRISA0 = 1; SEG_BITSEL_PORT_DIR = 0;//位选端口的方向寄存器,确定输出端口 SEG_FONT_PORT_DIR = 0;//字形输出端口的方向寄存器,确定输出端口 ADFM = 1; PCFG3:PCFG0 = 0000; ADCON0 = 0B11000001; ADIE = 1; ADIF = 0; PEIE = 1; GIE = 1; for(i=0;i<15;i++) { } GO_DONE = 1; while(GO_DONE) { if(OverFlag==1) { for(i=0;i<12;i++)//冒泡法排序 { for(j=i+1;j<12;j++) { if(g_ADRTable[i] > g_ADRTable[j]) { tmp = g_ADRTable[i]; g_ADRTable[i] = g_ADRTable[j]; g_ADRTable[j] = tmp; } } } tmp = 0; for(i=2;i<10;i++) { tmp = tmp + g_ADRTable[i]; } tmp = tmp >>3;//将数按照 2进制像右移动.每向右移动一位,相当于 除2的n次幂 adc_v = tmp; adc_v = ((long)adc_v*5000/1023); OverFlag = 0; GO_DONE = 1; } DisplayData(adc_v); } } void DisplayData (unsigned int iData ) { char i=0,j=0;// char k = 0,NumStr[ 5 ]={0,0,0,0,0}; NumStr[1]=iData / 1000;//取整 NumStr[2]=iData % 1000/100; NumStr[3]=iData % 100/10; NumStr[4]=iData % 10; for(i=0;i<10;i++) { SEG_BITSEL_PORT = k =0X01; for(j=0;j<=4;j++) { SEG_BITSEL_PORT = k; if(j==1) { SEG_FONT_PORT = Seg7TableN[NumStr[1]]&0b01111111; } else { SEG_FONT_PORT = Seg7TableN[NumStr[j]]; } delayms(5); k = k <<1;//把1向左移1为显示 } } } void delayms (int ms) { int i=0,j =0; for(i=0;i < ms;i++) for(j =0; j < DLY_MS;j++) {;} } //仿真结果,单片机数码管显示全是0,与设计的测量电阻电压不对,希望大家来找茬,这原因与结果 1467浏览量 0回复量 关注量 -
HC32L110
按照下面步骤,用示波器没有测试到内部时钟 3.3 内部 RC 时钟端口输出按照 3.1 和 3.2 章节介绍,使能相应的内部 RC 时钟。检测内部时钟稳定后,配置 RC 作为系统时钟:SYSCTRL0->Clk_sw4_sel=0x00(内部高速)或者 0x02(内部低速)配置端口:P24_SEL->P24_sel=0x03,AHB 总线时钟输出信号GPIO_CTRL1->hclk_sel,对于高速时钟需进行分频配置GPIO_CTRL1->hclk_en=1,hclk 输出使能用户可用示波器观察 P24 端口波形频率来确认内部 RC 时钟的准确性。
1396浏览量 1回复量 关注量 -
请教msp430fr2476初始化SPI的一个问题 sos
刚接触TI的MCU,最近项目需要用msp430fr2476做一个spi的通讯,查阅数据手册,说明了spi初始化步骤1、置位UCSWRST. 2、再UCSWTST=1时,初始化所有eUSCI寄存器(包括UCxCTL1). 3、配置端口. 4、软件清除UCSWRST. 5、通过设置UCRXIE或UCTXIE启动中断(可选). 但是我查阅了一些资料和例程,没有找到如何配置端口的,请问各位大侠, 1、如何配置端口引脚复用SPI功能? 2、如何知道端口引脚的某个功能是第几功能的?
1834浏览量 0回复量 关注量 -
1602液晶下拉电阻 sos
[i=s] 本帖最后由 yjd2799 于 2021-4-30 21:23 编辑 [/i] 1602液晶第六脚使能脚加下拉电阻,不就一直低电平,怎样进行上升沿。(P1端口上电默认高电平)
2308浏览量 0回复量 关注量 -
w5100可以ping的通但是接收不到数据 sos
使用w5100,为什么可以ping的通但是使用网络调试助手接收不到数据?IP,端口号什么的配置的都没问题。 麻烦遇到过这个问题的大神指点一下。
1623浏览量 0回复量 关注量 -
KSZ9567R交换芯片 假死 赏1000家园币
[font=Arial]我们的产品上采用microchip的KSZ9567R交换芯片,两片互连。[/font] [font=Arial]在我们的用户现场出现了一次交换机两个交换机的端口之间一直ping通的情况[/font] [font=Arial]回到公司为了故障复现,将tx+,tx-短接在一起,然后恢复正常连接,会出现两个交换机假死的情况。[/font] [font=Arial]故障1、在端口为自协商模式下,假死情况较少,假死时发现一个交换机为100M全双工,一个为10M半双工,[/font] [font=Arial]故障2、后改为不协商,100M全双工,每次短接恢复正常连接,100%假死。[/font] [font=Arial]故障3、此外在排故过程中,发现另一台产品上出现端口6假死的情况,查看寄存器也未发现异常。[/font] [font=Arial]以上故障,只能通过复位交换机,或复位端口可以恢复。[/font] [font=Arial]故障1,通过重新自协商也能恢复。[/font] [font=Arial]我想咨询的是,如何能避免假死问题,或者无法避免?还有该芯片是否还有其他使用注意事项,或问题。[/font] [font=Arial]平时不太用,没有多少家园币,谁要能帮忙彻底解决,直接发现金。谢谢。[/font]
15832浏览量 2回复量 关注量 -
HC32L110C6UA端口中断问题
华大HC32L110C6UA芯片配置P03端口输入下降沿中断,一旦触发中断就会一直进入端口中断,有对M0P_GPIO->P3ICLR写入0操作,并读取M0P_GPIO->P3ICLR和M0P_GPIO->P0STAT_f 寄存器发现值并没有变化。不知道是有哪里没有设置好,各位大神帮忙看看!如下是程序过程: void Gpio_IRQHandler(uint8_t u8Param){ uint32_t read_stat=0; switch(u8Param) { case 0: { } break; case 1: { } break; case 2: { } break; case 3: { } break; default:; break; } *((uint32_t *)((uint32_t)&M0P_GPIO->P3ICLR + u8Param * 0x40)) = 0; read_stat=*((uint32_t *)((uint32_t)&M0P_GPIO->P3ICLR + u8Param * 0x40)); read_stat=*((uint32_t *)((uint32_t)&M0P_GPIO->P0STAT_f + u8Param * 0x40)); } int32_t main(void) { Gpio_InitIOExt(0, 3, GpioDirIn, FALSE, FALSE, FALSE, FALSE); Gpio_ClearIrq(0, 3); //上升沿 Gpio_EnableIrq(0, 3, GpioIrqFalling); EnableNvic(PORT0_IRQn, DDL_IRQ_LEVEL_DEFAULT, TRUE); while(1) { } }
1425浏览量 2回复量 关注量 -
使用单片机+2.4G射频前端进行2.4G广播是否可行?
[i=s] 本帖最后由 hahahei2007 于 2020-11-17 11:51 编辑 [/i] [size=4]各位大牛,新人求助,常见2.4G远距离广播需要使用2.4G收发模组(如nrf24xx、cc2450等)。如果只需要发送2.4频率广播,而不需要进行接收,是否可以使用单片机+2.4G射频前端(PA)实现,我看到常见的射频前端芯片有RX、TX端口及天线端口,[/size][size=4] 本人小白,多谢大牛指导。[/size]
1033浏览量 9回复量 关注量 -
N76E003的P02(CLK)引脚上拉问题
使用N76E003做了一些产品,P02配置为上拉模式,P02_Quasi_Mode;//准双向口 P02=1;//弱上拉,且端口悬空,没有接任何外围电路,主要用于将该引脚拉低时进入指定程序模式。现在发现P02引脚电压有时5V,有时3V左右,不是应该一直为5V吗?怎么会出现上述问题呢?烦请指点,谢谢!
1049浏览量 3回复量 关注量