实验一#
| 灯 | 红 | 绿 | 蓝 |
|---|---|---|---|
| LED1 | PTC0 | PTC1 | PTC2 |
| LED2 | PTC3 | PTC4 | PTC5 |
| LED3 | PTC6 | PTC7 | PTC8 |
| LED4 | PTC9 | PTC10 | PTC11 |
基本要求#
同时点亮一个绿色的LED灯,一个蓝色的LED灯,一个紫色的LED灯,和一个红色的LED灯,并闪烁
#include "derivative.h" /* include peripheral declarations */
void delay(){
unsigned int i,j;
for(i=0;i<1000;i++){
for(j=0;j<1000;j++){
asm("nop");
}
}
}
int main(){
SIM_SCGC5|=0x800;
PORTC_PCR0=0x100;
PORTC_PCR4=0x100;
PORTC_PCR8=0x100;
PORTC_PCR9=0x100;
PORTC_PCR11=0x100;
GPIOC_PDDR=0xFFF;
GPIOC_PDOR&=~(0x01|0x10|0x100|0x200|0x800);
for(;;) {
delay();
GPIOC_PDOR^=(0x01|0x10|0x100|0x200|0x800);
}
return 0;
}
扩展要求#
依次点亮四个蓝色的LED,形成跑马灯,然后熄灭,依次点亮四个绿色的LED灯,形成跑马灯,然后熄灭,循环重复。
int main(){
SIM_SCGC5|=0x800;
PORTC_PCR2=0x100;
PORTC_PCR5=0x100;
PORTC_PCR8=0x100;
PORTC_PCR11=0x100;
PORTC_PCR1=0x100;
PORTC_PCR4=0x100;
PORTC_PCR7=0x100;
PORTC_PCR10=0x100;
GPIOC_PDDR=0xFFF;
GPIOC_PDOR&=~(0xDB6);
unsigned int i;
for(;;) {
int blue_flag=0x4;
for(i=0;i<4;i++){
delay();
GPIOC_PDOR|=0xDB6;
GPIOC_PDOR&=~blue_flag;
blue_flag=blue_flag<<3;
}
int green_flag=0x2;
for(i=0;i<4;i++){
delay();
GPIOC_PDOR|=0xDB6;
GPIOC_PDOR&=~green_flag;
green_flag=green_flag<<3;
}
}
return 0;
}