30/09/2018, 18:38

giúp đỡ code arm không chạy

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

lahata viết 20:39 ngày 30/09/2018

Bạn có thể cho mình xem sơ đồ kết nối giữa LED với vdk được không, không rõ là bạn kết nối trực tiếp như thế nào nên không trả lời chính xác được. Mình đoán là 2 led bạn nói ở 2 PORT khác nhau mà lại write data vào cùng một port.
GPIOPinWrite(GPIO_PORTBBASE,…



GPIOPinWrite(GPIO
PORTB_BASE,…

Nguyễn Khải viết 20:41 ngày 30/09/2018

mình dùng BJT để điều khiển 2 con led 7 seg trên cùng 1 port bạn ơi

Nguyễn Khải viết 20:52 ngày 30/09/2018

2 cái PD0 với PD1 là để điều khiển tích cực BJT

Bài liên quan
0