# 实验一

| 灯   | 红    | 绿    | 蓝     |
| :----: | :----: | :----: |  :----: |
| LED1 | PTC0  | PTC1  | PTC2   |
| LED2 | PTC3  | PTC4  | PTC5   |
| LED3 | PTC6  | PTC7  | PTC8   |
| LED4 | PTC9  | PTC10 | PTC11  |

## 基本要求

同时点亮一个绿色的LED灯，一个蓝色的LED灯，一个紫色的LED灯，和一个红色的LED灯，并闪烁

```c
#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灯，形成跑马灯，然后熄灭，循环重复。

```c
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;
}
```
