1 /* 2 * Copyright (c) 2006-2021, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2011-01-13 weety first version 9 */ 10 11 #include <rtthread.h> 12 #include <at91sam9g45.h> 13 #include "led.h" 14 15 // BYHX A-Plus Board 16 #define LED0 (1UL << 30) 17 #define LED1 (1UL << 31) 18 #define LED2 (1UL << 29) 19 #define LED3 (1UL << 28) 20 #define LED_ALL (LED0 | LED1 | LED2 | LED3) 21 led_init(void)22void led_init(void) 23 { 24 AT91C_BASE_PIOC->PIO_PER = LED_ALL; 25 AT91C_BASE_PIOC->PIO_OER = LED_ALL; 26 AT91C_BASE_PIOC->PIO_PPUER = LED_ALL; 27 AT91C_BASE_PIOC->PIO_SODR = LED_ALL; 28 } 29 30 const static rt_uint32_t m_leds[] = { LED0, LED1, LED2, LED3 }; 31 led_on(int num)32void led_on(int num) 33 { 34 if (num < 4) AT91C_BASE_PIOC->PIO_CODR = m_leds[num]; 35 } 36 led_off(int num)37void led_off(int num) 38 { 39 if (num < 4) AT91C_BASE_PIOC->PIO_SODR = m_leds[num]; 40 } 41