Hetpro USBasp V3.0 Guía De Usuario página 60

Tabla de contenido

Publicidad

Guía de Usuario USBasp V3.0| HeTPro
3, si dir es diferente de uno entonces abcd valrdan de 3 a 0, como se puede ver
dependiendo de la dirección la secuencia se ira de derecha a izquierda o viceversa. La
función todavía no termina.
PORTB=pasos[tipo][a];
_delay_ms(150);
PORTB=pasos[tipo][b];
_delay_ms(150);
PORTB=pasos[tipo][c];
_delay_ms(150);
PORTB=pasos[tipo][d];
_delay_ms(150);
Se va a mostrar la secuencia en el puerto B del micro, por lo tanto los valores de la
matriz se enviaran al puerto, como se puede ver dependiendo de la variable tipo será
la fila de la matriz y dependiendo de cómo hayan quedado abcd será el
desplazamiento. También hay que notar que entre cada paso del motor se esperan
150 ms, de lo contrario el motor no respondería, tiene que haber una espera entre
paso y paso.
if (tipo==3){
PORTB=pasos[tipo+1][a];
_delay_ms(150);
PORTB=pasos[tipo+1][b];
_delay_ms(150);
PORTB=pasos[tipo+1][c];
_delay_ms(150);
PORTB=pasos[tipo+1][d];
_delay_ms(150);
}
else;
}
Solo para el caso de haber elegido el tipo half step (que tomara el valor de 3, se verá
más adelante), se continuara con la siguiente fila, por lo tanto con un if declaramos
que solo si el tipo es igual a tres entonces continuara con los otros 4 pasos que faltan,
pero como esta en otra columna en la variable tipo, que nos dice la columna de la
matriz se le suma un 1, (en este caso si empezamos con el half step en la columna 3 y
después entra al if por que cumple con la condición, la matriz tomaría la columna 4).
Como se puede ver por las llaves aquí termina la función seq_paso.
int main(void){
DDRB=0xFF;
59

Publicidad

Tabla de contenido
loading

Tabla de contenido