#include "inc/lm3s8962.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "DriverLib/debug.h"
#include "DriverLib/gpio.h"
#include "DriverLib/sysctl.h"
typedef unsigned char u8;
typedef volatile unsigned int vu32;
/*
#define A3_ON GPIOB->ODR |= GPIO_Pin_6
#define A3_OFF GPIOB->ODR &= ~GPIO_Pin_6
#define A2_ON GPIOB->ODR |= GPIO_Pin_7
#define A2_OFF GPIOB->ODR &= ~GPIO_Pin_7
#define A1_ON GPIOD->ODR |= GPIO_Pin_2
#define A1_OFF GPIOD->ODR &= ~GPIO_Pin_2
#define A0_ON GPIOB->ODR |= GPIO_Pin_5
#define A0_OFF GPIOB->ODR &= ~GPIO_Pin_5
#define red_off GPIOA->ODR |= GPIO_Pin_12
#define red_on GPIOA->ODR &= ~GPIO_Pin_12
#define green_off GPIOC->ODR |= GPIO_Pin_10
#define green_on GPIOC->ODR &= ~GPIO_Pin_10
#define clock_on GPIOA->ODR |= GPIO_Pin_10
#define clock_off GPIOA->ODR &= ~GPIO_Pin_10
#define latch_on GPIOA->ODR |= GPIO_Pin_11
#define latch_off GPIOA->ODR &= ~GPIO_Pin_11
#define pin3_off GPIOA->ODR &= ~GPIO_Pin_8
#define pin2_off GPIOA->ODR &= ~GPIO_Pin_9
#define pin1_off GPIOC->ODR &= ~GPIO_Pin_8
*/
#define A3_ON GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_1, GPIO_PIN_1)
#define A3_OFF GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_1, 0)
#define A2_ON GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_0, GPIO_PIN_0)
#define A2_OFF GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_0, 0)
#define A1_ON GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_PIN_6)
#define A1_OFF GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6, 0)
#define A0_ON GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_7, GPIO_PIN_7)
#define A0_OFF GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_7, 0)
#define red_off GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_4)
#define red_on GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0)
#define green_off GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_5, GPIO_PIN_5)
#define green_on GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_5, 0)
#define clock_on GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, GPIO_PIN_1)
#define clock_off GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, 0)
#define latch_on GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_0, GPIO_PIN_0)
#define latch_off GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_0, 0)
#define pin3_off GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0)
#define pin2_off GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0)
//#define pin1_off GPIOC->ODR &= ~GPIO_Pin_8
void port_init(void){
//pin1_off;
pin2_off;
pin3_off;
red_off;
green_off;
clock_off;
latch_off;
A0_OFF;
A1_OFF;
A2_OFF;
A3_OFF;
}
void dot(u8 red1, u8 green1)
{
u8 k,j;
vu32 i;
for(k=0;k<16;k++) {
i=20;
for(j=0;j<96;j++) {
if(red1) red_on;
else red_off;
if(green1) green_on;
else green_off;
clock_on;
clock_off;
}
if(k & 1) A0_ON; else A0_OFF;
if(k & 2) A1_ON; else A1_OFF;
if(k & 4) A2_ON; else A2_OFF;
if(k & 8) A3_ON; else A3_OFF;
latch_on;
latch_off;
do {
clock_on;
clock_off;
}while(i--);
}
}
void main()
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);
GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE,GPIO_PIN_0 | GPIO_PIN_1);
port_init();
do {
for(vu32 k=0;k<100;k++) dot(1,0);
for(vu32 k=0;k<100;k++) dot(0,1);
for(vu32 k=0;k<100;k++) dot(1,1);
}while(1);
}
'컴퓨터 > Cortex-M3(STM32F103)' 카테고리의 다른 글
[STM3210B]RTC를 이용하여 TEXT LCD에 날짜가 표시되는 시계 (0) | 2011.06.30 |
---|---|
[STM3210B]TEXT LCD Module MLCD-100 기본 구동 프로그램 (0) | 2011.06.28 |
STM3210E보드에 있는 LED점멸하기(GPIO) (1) | 2011.05.04 |
H-JTAG 개발환경 구축 (2) | 2011.05.03 |
AIJI OPENice-A1000 개발환경 구축 (0) | 2011.05.03 |