mình đang lập trình cho led 7 đoạn chạy từ 0-60 để hiển thị giây đây là đoạn code mình làm:
#include "stdint.h"
#include "stdbool.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#define PD0 (*((volatile unsigned long *)0x40007004))
#define PD1 (*((volatile unsigned long *)0x40007008))
#define LED_PORT (*((volatile unsigned long *))0x400053FC))
int main(void)
{
unsigned char maled[]= { 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
unsigned char dem,chuc, dvi;
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB|SYSCTL_PERIPH_GPIOD);
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
while(1)
{
for(dem=0;dem<60;dem++)
{
chuc = dem/10;
dvi = dem%10;
GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,maled[chuc]);
PD0 = 0x00;
SysCtlDelay(10000000);
PD0 = 0x01;
GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,maled[dvi]);
PD1 = 0x00;
SysCtlDelay(10000000);
PD1 = 0x01;
}
}
}
test nó vẫn cứ chạy 2 cái led song song chứ không chạy từ 0-60
anh em nào chỉ giúp mình được không ạ? xin cảm ơn
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?