Exemple #1
0
void radio_reset(void)
{
    gpio_high(RESET);
    delayms(150);

    gpio_low(RESET);
    delayus(100);
}
Exemple #2
0
static void _change_mode(uint8_t mode)
{
    HRF_writereg(HRF_ADDR_OPMODE, mode);
    _wait_ready();
    gpio_low(LED_GREEN); // TX OFF
    gpio_low(LED_RED);   // RX OFF

    if (mode == HRF_MODE_TRANSMITTER)
    {
        _wait_txready();
        gpio_high(LED_RED);   // TX ON
    }
    else if (mode == HRF_MODE_RECEIVER)
    {
        gpio_high(LED_GREEN); // RX ON
    }
    radio_data.mode = mode;
}
/**
 * Send a command strobe (one-byte register access that initiates an action)
 *
 * @returns status byte
 */
uint8_t cc2500_send_strobe(uint8_t reg) {
	uint8_t status = 0;
	
	gpio_low(cs_pin);
	status = spi_write_byte(SPIx, reg);
	gpio_high(cs_pin);
	
	return status;
}
/**
 * Access a configuration register on the CC2500
 * NOT used for multi-byte registers or command strobes
 *
 * @returns status byte for writes, or value for reads
 */
uint8_t cc2500_write_register(uint8_t reg, uint8_t val) {
	uint8_t status = 0;
	
	gpio_low(cs_pin);
	spi_write_byte(SPIx, reg);
	status = spi_write_byte(SPIx, val);
	gpio_high(cs_pin);
	
	return status;
}
Exemple #5
0
void motor_prepare(void)
{
	// motor1
	gpio_high(M1_EN);
	gpio_high(M1_STEP);
	gpio_high(M1_DIR);

	gpio_out(M1_EN);
	gpio_out(M1_STEP);
	gpio_out(M1_DIR);

	// motor2
	gpio_high(M2_EN);
	gpio_high(M2_STEP);
	gpio_high(M2_DIR);
	
	gpio_out(M2_EN);
	gpio_out(M2_STEP);
	gpio_out(M2_DIR);

	// timer 1 FastPWM with interrupt
	TCCR1A = _BV(WGM11);
	TCCR1B = _BV(WGM12) | _BV(WGM13) | 1;
	ICR1 = 0x0FFF;							// 122Hz
	TIMSK1 = _BV(TOIE1);
}
Exemple #6
0
void blink(const ff_gpio *gpio)
{
	int i;

	printf("blink\n");

	gpio_input(gpio);
	gpio_output(gpio);

	printf("Start loop\n");
	for (i = 0; i < 10; ++i)
	{
		gpio_high(gpio);
		sleep(1);
		gpio_low(gpio);
		sleep(1);
	}
}