Пример #1
0
int ReadPort(int port)
{
	static int count=0;
	int data = pin_get(BTDO);
	if (data) data = 0xFF; // assert all bit, to allow recipient to pick favorite.
	return ~data; // reader seem to want things inverted ?
}
Пример #2
0
Debounce *debounce_init(Pin *pin){
	Debounce *debounce = (Stepper * ) malloc( sizeof( Stepper ) );

	debounce->pin = pin;
	debounce->state = pin_get(pin);
	debounce->last_state = !debounce->state;
	debounce->time = 0;


	return debounce;
}
Пример #3
0
static int sff_8431_poll_present(struct nfp_phymod *phy)
{
	struct nfp_phymod_priv *priv = phy->priv;
	struct sff_8431 *sff = phy->sff.priv;
	int err;

	err = pin_get(priv->nfp, &sff->in.present);
	if (err < 0)
		return err;

	return err ? 0 : 1;
}
Пример #4
0
// Called when channel B has changed
static void __encChB(const IOPin* io,boolean val, volatile void* data){
	QUADRATURE* encoder = (QUADRATURE*)data;
	boolean chA = pin_get(encoder->channelA);
	if(val ^ chA){
		encoder->encoder.counter--;
	}else{
		encoder->encoder.counter++;
	}
	if(encoder->encoder.interpolate){
		_encoder_tick(&encoder->encoder);
	}
}
Пример #5
0
static int sff_8431_status_fault(struct nfp_phymod *phy,
				 u32 *tx_status, u32 *rx_status)
{
	struct sff_8431 *sff = phy->sff.priv;
	int err;

	err = pin_get(phy->priv->nfp, &sff->in.tx_fault);
	if (err < 0)
		return err;

	if (tx_status)
		*tx_status = err;

	if (rx_status)
		*rx_status = 0;

	return 0;
}
Пример #6
0
int main(void) {

    pin_config_out(g_led);
    pin_config_out(r_led);
    pin_config_out(e_heat);
    pin_config_out(b_heat);
    pin_config_out(buzzer);
    pin_low(buzzer);


    Stepper *stepper_x = stepper_init(x_step,x_dir,motor_enb);
    Stepper *stepper_y = stepper_init(y_step,y_dir,motor_enb);
    Stepper *stepper_z = stepper_init(z_step,z_dir,motor_enb);
//	stepper_start_frame();

    Uart *uart = uart_init();
    console_init();
    thermistor_init();
//	console_prompt();

    pin_config_in(x_stop);

    pin_high(r_led);

    char dir = 1;
    int count = 0;
    unsigned int hit = 0;

    while(1) {

//		dir = pin_get(EXP2);
        stepper_dir(stepper_x,dir);
        stepper_dir(stepper_y,dir);
        stepper_dir(stepper_z,dir);

        if(dir == 1) {
            if(pin_get(x_stop)==0 ) {
                if(hit < 2) {
                    stepper_step(stepper_x);
                    stepper_step(stepper_y);
                    stepper_step(stepper_z);
                    count++;
                }
            } else {
                hit++;
                if(hit < 2) {
                    printf("%i\n",count);
                    printf("HIT!\n");
                    dir = 0;
                    hit = 0;
                }
            }

        }


        if(dir == 0) {
            stepper_step(stepper_x);
            stepper_step(stepper_y);
            stepper_step(stepper_z);
            count--;
            if(count == 0) {
                dir = 1;
            }
        }








        _delay_us(50);

        /*
        			count++;
        			if(count == 1000){
        				pin_toggle(g_led);
        				count = 0;
        			//	pin_toggle(stepper_x->direction);
        			//	pin_toggle(stepper_y->direction);
        			//	pin_toggle(stepper_z->direction);
        			}
        */

    }


}
Пример #7
0
byte btn_get(Btn *btn){
	if(btn->mode)
	return pin_get(btn->pin);
	else
	return !pin_get(btn->pin);
}
unsigned char ds_pin_get(){
	pin_configure_as_input(PORT, PIN);
    return pin_get( PORT, PIN );
}