Advertisement
Guest User

main_listing

a guest
Apr 30th, 2013
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. #include <compiler.h>
  2. #include <sysclk.h>
  3. #include <board.h>
  4. #include <gpio.h>
  5. #include <delay.h>
  6. #include <pm.h>
  7.  
  8. //#include <.h>
  9. #include <intc.h>
  10. #include <spi.h>
  11.  
  12. //////////////////////////////////////////////////////////////////////////
  13. //////////////////////////////////////////////////////////////////////////
  14. #define SPI0 (&AVR32_SPI0)
  15. #define SPI1 (&AVR32_SPI1)
  16.  
  17. spi_options_t spi_options_0 = {
  18. .baudrate = 1000000,
  19. .bits = 8,
  20. .modfdis = 1,
  21. .reg = 0,
  22. .spck_delay = 0,
  23. .spi_mode = SPI_MODE_0,
  24. .stay_act = 1,
  25. .trans_delay = 0
  26. };
  27. spi_options_t spi_options_1 = {
  28. .baudrate = 1000000,
  29. .bits = 8,
  30. .modfdis = 1,
  31. .reg = 1,
  32. .spck_delay = 0,
  33. .spi_mode = SPI_MODE_0,
  34. .stay_act = 1,
  35. .trans_delay = 0
  36. };
  37.  
  38. void SPI0_setup(){//FUNCTION A!
  39. static const gpio_map_t spi0_gpio_map = {{AVR32_SPI0_MISO_0_0_PIN, AVR32_SPI0_MISO_0_0_FUNCTION}, //SPI0 MISO = PA10
  40. {AVR32_SPI0_MOSI_0_0_PIN, AVR32_SPI0_MOSI_0_0_FUNCTION}, //SPI0 MOSI = PA11
  41. {AVR32_SPI0_SCK_0_0_PIN, AVR32_SPI0_SCK_0_0_FUNCTION}, //SPI0 SCK = PA08
  42. {AVR32_SPI0_NPCS_0_0_PIN, AVR32_SPI0_NPCS_0_0_FUNCTION}}; //SPI0 SS =
  43.  
  44. gpio_enable_module(spi0_gpio_map,sizeof(spi0_gpio_map)/sizeof(spi0_gpio_map[0]));
  45.  
  46. }
  47. void SPI1_setup(){//Function B
  48. static const gpio_map_t spi1_gpio_map = {{AVR32_SPI1_MISO_0_1_PIN, AVR32_SPI1_MISO_0_1_FUNCTION}, //SPI1 MISO = PA19
  49. {AVR32_SPI1_MOSI_0_1_PIN, AVR32_SPI1_MOSI_0_1_FUNCTION}, //SPI1 MOSI = PA16
  50. {AVR32_SPI1_SCK_0_1_PIN, AVR32_SPI1_SCK_0_1_FUNCTION}, //SPI1 SCK = PA15
  51. //{AVR32_SPI1_NPCS_0_1_PIN, AVR32_SPI1_NPCS_0_1_FUNCTION}//
  52. }; //SPI SS = PA17
  53.  
  54. gpio_enable_module(spi1_gpio_map,sizeof(spi1_gpio_map)/sizeof(spi1_gpio_map[0]));
  55.  
  56. }
  57.  
  58. void SPI0_init(){
  59. sysclk_enable_pba_module(SYSCLK_SPI0);
  60. sysclk_enable_peripheral_clock(SPI0);
  61.  
  62. SPI0_setup();
  63. //printf("initMaster %d \r\n", spi_initMaster(SPI_RADIO_1,&spi_options_radio));
  64. spi_initMaster(SPI0,&spi_options_0);
  65. spi_setupChipReg(SPI0,&spi_options_0,sysclk_get_pba_hz());
  66. //printf("setupChipReg %d \r\n", spi_setupChipReg(SPI_RADIO_1,&spi_options_radio,sysclk_get_pba_hz()));
  67. spi_enable(SPI0);
  68. spi_setupChipReg(SPI0,&spi_options_0,FOSC0);
  69. }
  70.  
  71. void SPI1_init(){
  72. sysclk_enable_pba_module(SYSCLK_SPI1);
  73. sysclk_enable_peripheral_clock(SPI1);
  74.  
  75. SPI1_setup();
  76. //printf("initMaster %d \r\n", spi_initMaster(SPI_RADIO_1,&spi_options_radio));
  77. spi_initMaster(SPI1,&spi_options_1);
  78. spi_setupChipReg(SPI1,&spi_options_1,1000000);
  79. //spi_setupChipReg(SPI1,&spi_options_1,sysclk_get_pba_hz());
  80. //printf("setupChipReg %d \r\n", spi_setupChipReg(SPI_RADIO_1,&spi_options_radio,sysclk_get_pba_hz()));
  81. spi_enable(SPI1);
  82. spi_setupChipReg(SPI1,&spi_options_1,1000000);
  83. }
  84.  
  85.  
  86. //////////////////////////////////////////////////////////////////////////
  87. //////////////////////////////////////////////////////////////////////////
  88. volatile bool ledFlag = 0;
  89. volatile bool ledFlag_old = 0;
  90.  
  91. __attribute__((__interrupt__))
  92. static void int_handler_01(void)
  93. {
  94. if(gpio_get_pin_interrupt_flag( GPIO_PUSH_BUTTON_0 ))
  95. ledFlag_old = ledFlag;
  96. ledFlag=!ledFlag;
  97. LED_Toggle(LED0|LED1|LED2|LED3);
  98. gpio_clear_pin_interrupt_flag( GPIO_PUSH_BUTTON_0 );
  99. }
  100.  
  101.  
  102.  
  103. //////////////////////////////////////////////////////////////////////////
  104. //////////////////////////////////////////////////////////////////////////
  105. int main(void)
  106. {
  107. sysclk_init();
  108.  
  109.  
  110. pm_switch_to_osc0(&AVR32_PM,FOSC0,3);
  111.  
  112. sysclk_enable_peripheral_clock(SYSCLK_INTC | SYSCLK_GPIO | SYSCLK_PM | SYSCLK_SPI0 | SYSCLK_SPI1);
  113.  
  114. board_init();
  115. SPI1_init();
  116. //SPI0_init();
  117.  
  118.  
  119. LED_Off(LED0|LED1|LED2|LED3);
  120.  
  121. gpio_enable_pin_interrupt(GPIO_PUSH_BUTTON_0,GPIO_FALLING_EDGE);
  122. Disable_global_interrupt();
  123. INTC_init_interrupts();
  124. INTC_register_interrupt( &int_handler_01, AVR32_GPIO_IRQ_0 + (GPIO_PUSH_BUTTON_0/8),AVR32_INTC_INT0);
  125. Enable_global_interrupt();
  126.  
  127.  
  128. while (1) {
  129. // gpio_toggle_pin(LED0_GPIO);
  130. // delay_ms(500);
  131. //spi_selectChip(SPI0,1);
  132. //while(!spi_is_tx_ready(SPI0));
  133.  
  134. //uint16_t txdata0 = 0x80;
  135.  
  136.  
  137. // spi_put(SPI0,txdata0);
  138.  
  139. // while(!spi_is_tx_empty(SPI0));
  140.  
  141. //spi_unselectChip(SPI0,1);
  142. //////////////////////////////////////////////////////////////////////////
  143. spi_selectChip(SPI1,0);
  144. while(!spi_is_tx_ready(SPI1));
  145.  
  146. uint16_t txdata1 = 0x80;
  147.  
  148.  
  149. spi_write(SPI1,txdata1);
  150.  
  151. while(!spi_is_tx_empty(SPI1));
  152.  
  153. spi_unselectChip(SPI1,0);
  154. LED_Toggle(LED0);
  155.  
  156.  
  157.  
  158. }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement