Me mudé a Atmel desde una carrera que tuve con la serie MSP430 y un poco confuso en este momento, ya que la configuración de los pines parece bastante diferente.
Mientras manejaba un dispositivo SPI, necesitaba un pin de E / S general para controlar la funcionalidad RESET del módulo de radio SPI externo y noté que del conjunto de pines que uso para fines similares, algunos no funcionan como deberían.
Escogí un pin vacío en el tablero de demostración SAMD21 Explicado y, en este caso en particular, estaban
- Ext3_PIN_3, 4, 5, 6
Aquí están las definiciones de pin de samd21_xplained_pro.h
//name Extension header #2 pin definitions
#define EXT3_PIN_3 PIN_PA02
#define EXT3_PIN_4 PIN_PA03
#define EXT3_PIN_5 PIN_PB30
#define EXT3_PIN_6 PIN_PA15
Enganchando Ext3_PIN_4 (que es PIN_PA11) a un CRO y ejecutando los comandos a continuación justo al inicio para la prueba, no obtengo cambios entre 3.3 y 0 a diferencia de los otros 3 pines .
int main(void)
{
struct port_config pin_conf;
port_get_config_defaults(&pin_conf);
/* Configure the pin as outputs */
pin_conf.direction = PORT_PIN_DIR_OUTPUT;
port_pin_set_config(EXT3_PIN_4, &pin_conf);
port_pin_set_output_level(EXT3_PIN_4, 1);
port_pin_set_output_level(EXT3_PIN_4, 0);
port_pin_set_output_level(EXT3_PIN_4, 1);
port_pin_set_output_level(EXT3_PIN_4, 0);
}
Obtuve puntos de interrupción en cada línea pin_set
y alternando manualmente al avanzar una sola línea ya que no quería inicializar delay_ms
, etc.
¿Hay algo obvio que me esté perdiendo aquí?