程序上输出的数组数据为下面的数据,
__align(2) unsigned short LED_TAB[2]={0X0102,0X0304};
实际输出的波形为下图(上面的是时钟数据,下面的的是LED0输出的DATA数据)
初始化配置
GPIOA_ResetBits( GPIO_Pin_0 ); // ????PWM?? PA10
GPIOA_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA );
GPIOA_ResetBits( GPIO_Pin_4 ); // ????PWM?? PA10
GPIOA_ModeCfg( GPIO_Pin_4, GPIO_ModeOut_PP_5mA );
R8_LED_CLOCK_DIV = 10;
R16_LED_DMA_MAIN = (UINT16) &LED_TAB[0];
R8_LED_CTRL_MOD = RB_LED_OUT_EN ;
NVIC_EnableIRQ( LED_IRQn );
R16_LED_DMA_CNT=2;
R8_LED_CTRL_MOD |= RB_LED_DMA_EN;
主函数while(1)里面刷新
R16_LED_DMA_CNT= 2;
R8_LED_CTRL_MOD |= RB_LED_DMA_EN | RB_LED_OUT_EN;
while(R16_LED_DMA_CNT||!(R8_LED_STATUS&RB_LED_FIFO_EMPTY));
R8_LED_CTRL_MOD &= ~ (RB_LED_DMA_EN |RB_LED_OUT_EN);
现在输出的数据不对,怎么解决?
有两点疑问,
第一、时钟信号是上升沿有效还是下降沿有效?
第二、LED0 LED1 LED2 LED3如果都向外出数据,R16_LED_FIFO寄存器与这些数据线怎么对应?
能不能出一个例程,我需要DMA刷新的,CH559寄存器都对不上,并且寄存器相应的功能也改了