Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <compiler.h>
- #include <sysclk.h>
- #include <board.h>
- #include <gpio.h>
- #include <delay.h>
- #include <power_clocks_lib.h>
- #include <spi_master.h>
- #include <pm.h>
- #define SPI1 (&AVR32_SPI1)
- #define SPI0 (&AVR32_SPI0)
- spi_options_t SPI1_options =
- {
- .reg = 1,
- .baudrate = 10000,
- .bits = 8,
- .spck_delay = 0,
- .trans_delay = 0,
- .stay_act = 1,
- .spi_mode = 0,
- .modfdis = 1
- };
- void SPI1_map_pins()
- {
- //SPI1 Pins on XPLAINED BOARD
- // J1.5 = SPI1.CS0 = PB09 = GPIO.41[A]
- // J1.6 = SPI1.MOSI = PB10 = GPIO.42[A]
- // J1.7 = SPI1.MISO = PB08 = GPIO.40[A]
- // J1.8 = SPI1.SCK = PB07 = GPIO.39 [A]
- static const gpio_map_t SPI1_gpio_map = {
- {39,0},
- {40,0},
- {41,0},
- {42,0}
- };
- gpio_enable_module_pin(SPI1_gpio_map,sizeof(SPI1_gpio_map)/sizeof(SPI1_gpio_map[0]));
- }
- void SPI1_init()
- {
- SPI1_map_pins();
- spi_initMaster(SPI1, &SPI1_options);
- spi_selectionMode(SPI1,0,0,0);
- spi_enable(SPI1);
- }
- spi_options_t SPI0_options =
- {
- .reg = 0,
- .baudrate = 10000,
- .bits = 8,
- .spck_delay = 0,
- .trans_delay = 0,
- .stay_act = 1,
- .spi_mode = 0,
- .modfdis = 1
- };
- void SPI0_map_pins()
- {
- static const gpio_map_t SPI0_gpio_map = {
- {AVR32_SPI0_MISO_0_0_PIN,AVR32_SPI0_MISO_0_0_FUNCTION},
- {AVR32_SPI0_MOSI_0_0_PIN,AVR32_SPI0_MOSI_0_0_FUNCTION},
- {AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION},
- {AVR32_SPI0_NPCS_0_0_PIN,AVR32_SPI0_NPCS_0_0_FUNCTION}
- };
- gpio_enable_module_pin(SPI0_gpio_map,sizeof(SPI0_gpio_map)/sizeof(SPI0_gpio_map[0]));
- }
- void SPI0_init()
- {
- SPI0_map_pins();
- spi_initMaster(SPI0, &SPI0_options);
- spi_selectionMode(SPI0,0,0,0);
- spi_enable(SPI0);
- }
- int main(void)
- {
- sysclk_init();
- board_init();
- pcl_switch_to_osc(PCL_OSC0, FOSC0, OSC0_STARTUP);
- sysclk_enable_peripheral_clock(SPI1);
- // sysclk_enable_peripheral_clock(SPI0);
- SPI1_init();
- //SPI0_init();
- while (1) {
- gpio_toggle_pin(LED0_GPIO);
- delay_ms(500);
- //while(!spi_is_tx_ready(SPI1)){;;}
- uint16_t data = 0x80;
- spi_write(SPI1,data);
- //while(!spi_is_tx_empty(SPI1)){;;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement