Die Radiohead-Library für RFM95 u.a. arbeitet gut in der Adruino-IDE.
Um damit komfortabler mit einem SAMD21 in Atmel Studio arbeiten zu
können, ist eine Portierunge notwendig.
Mit dem ASF des Atmel Studio kann der SPI bequem eingerichtet werden.
Hat jemand einen Wrapper oder eine Adaption für RadioHead?
1 | //configure_spi_master_______________________
|
2 | void configure_spi_master(void)
|
3 | {//SERCOM3, mux D
|
4 | struct spi_config config_spi_master;
|
5 | struct spi_slave_inst_config slave_dev_config;
|
6 | //slave_dev_config:
|
7 | spi_slave_inst_get_config_defaults(&slave_dev_config);
|
8 | slave_dev_config.ss_pin = PIN_PA18;
|
9 | spi_attach_slave(&slave, &slave_dev_config);
|
10 |
|
11 | //config_spi_master:
|
12 | spi_get_config_defaults(&config_spi_master);
|
13 | config_spi_master.mux_setting = SPI_SIGNAL_MUX_SETTING_D; //PAD0=MOSI, PAD1=SCK, PAD2=nix, PAD3=MISO. siehe=10.1.Master Mode Settings in Atmel-42115
|
14 | config_spi_master.pinmux_pad0 = PINMUX_PA16D_SERCOM3_PAD0; //MOSI an PA16
|
15 | config_spi_master.pinmux_pad1 = PINMUX_PA17D_SERCOM3_PAD1; //SCK an PA17
|
16 | config_spi_master.pinmux_pad2 = PINMUX_UNUSED; //CS=NSS an PA18
|
17 | config_spi_master.pinmux_pad3 = PINMUX_PA19D_SERCOM3_PAD3; //MISO an PA19
|
18 | //config_spi_master.generator_source=GCLK_GENERATOR_0;
|
19 |
|
20 | config_spi_master.transfer_mode = SPI_TRANSFER_MODE_0;
|
21 | config_spi_master.data_order = SPI_DATA_ORDER_MSB;
|
22 | config_spi_master.run_in_standby=false;
|
23 | config_spi_master.mode_specific.master.baudrate = 250000;
|
24 | spi_init(&spi_master_instance, SERCOM3, &config_spi_master);
|
25 | spi_enable(&spi_master_instance);
|
26 | }
|