Advertisement
Guest User

main_listing

a guest
May 1st, 2013
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <compiler.h>
  2. #include <sysclk.h>
  3. #include <board.h>
  4. #include <gpio.h>
  5. #include <delay.h>
  6. #include <power_clocks_lib.h>
  7. #include <spi_master.h>
  8. #include <pm.h>
  9.  
  10. #define SPI1 (&AVR32_SPI1)
  11. #define SPI0 (&AVR32_SPI0)
  12. spi_options_t SPI1_options =
  13.     {
  14.         .reg            = 1,
  15.         .baudrate       = 10000,
  16.         .bits           = 8,
  17.         .spck_delay     = 0,
  18.         .trans_delay    = 0,
  19.         .stay_act       = 1,
  20.         .spi_mode       = 0,
  21.         .modfdis        = 1    
  22.     };
  23.  
  24. void SPI1_map_pins()
  25.     {
  26.        
  27.         //SPI1 Pins on XPLAINED BOARD
  28.         // J1.5 = SPI1.CS0 = PB09 = GPIO.41[A]
  29.         // J1.6 = SPI1.MOSI = PB10 = GPIO.42[A]
  30.         // J1.7 = SPI1.MISO = PB08 = GPIO.40[A]
  31.         // J1.8 = SPI1.SCK = PB07 = GPIO.39 [A]
  32.             static const gpio_map_t SPI1_gpio_map = {
  33.             {39,0},
  34.             {40,0},
  35.             {41,0},
  36.             {42,0}
  37.             };
  38.         gpio_enable_module_pin(SPI1_gpio_map,sizeof(SPI1_gpio_map)/sizeof(SPI1_gpio_map[0]));  
  39.     }
  40.  
  41. void SPI1_init()
  42.     {
  43.         SPI1_map_pins();
  44.        
  45.         spi_initMaster(SPI1, &SPI1_options);
  46.        
  47.         spi_selectionMode(SPI1,0,0,0);
  48.        
  49.         spi_enable(SPI1);          
  50.     }
  51.  
  52.  
  53.  
  54. spi_options_t SPI0_options =
  55. {
  56.     .reg            = 0,
  57.     .baudrate       = 10000,
  58.     .bits           = 8,
  59.     .spck_delay     = 0,
  60.     .trans_delay    = 0,
  61.     .stay_act       = 1,
  62.     .spi_mode       = 0,
  63.     .modfdis        = 1
  64. };
  65.  
  66. void SPI0_map_pins()
  67. {
  68.     static const gpio_map_t SPI0_gpio_map = {
  69.     {AVR32_SPI0_MISO_0_0_PIN,AVR32_SPI0_MISO_0_0_FUNCTION},
  70.     {AVR32_SPI0_MOSI_0_0_PIN,AVR32_SPI0_MOSI_0_0_FUNCTION},
  71.     {AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION},
  72.     {AVR32_SPI0_NPCS_0_0_PIN,AVR32_SPI0_NPCS_0_0_FUNCTION}
  73.     };
  74.     gpio_enable_module_pin(SPI0_gpio_map,sizeof(SPI0_gpio_map)/sizeof(SPI0_gpio_map[0]));
  75. }
  76.  
  77. void SPI0_init()
  78. {
  79.     SPI0_map_pins();
  80.    
  81.     spi_initMaster(SPI0, &SPI0_options);
  82.    
  83.     spi_selectionMode(SPI0,0,0,0);
  84.    
  85.     spi_enable(SPI0);
  86. }
  87.  
  88. int main(void)
  89. {
  90.     sysclk_init();
  91.     board_init();
  92.  
  93.     pcl_switch_to_osc(PCL_OSC0, FOSC0, OSC0_STARTUP);
  94.     sysclk_enable_peripheral_clock(SPI1);
  95.     //  sysclk_enable_peripheral_clock(SPI0);
  96.     SPI1_init();
  97.     //SPI0_init();
  98.    
  99.     while (1) {
  100.  
  101.     gpio_toggle_pin(LED0_GPIO);
  102.        
  103.     delay_ms(500);
  104.  
  105.     //while(!spi_is_tx_ready(SPI1)){;;}
  106.     uint16_t data = 0x80;
  107.     spi_write(SPI1,data);
  108.    
  109.     //while(!spi_is_tx_empty(SPI1)){;;}
  110.        
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement