-
-
Neuer Benutzer
Öfters hier
Hallo Michael,
ja stimmt, Du hast recht.
Vieleicht kann mir nochmal jemand helfen.
Programmieren möchte ich gern mit C und mit dem AVR Studio. Das klappt auch so weit. kann den Motor auch schon bewegen.
Allerdings kapiere ich nicht wie man eine Schleife schreibt die den Motor sagen wir 100 Schritte in die eine und dann 100 Schritte in die andere Richtung drehen lässt.
Clock hängt bei mir an Port B0 vom Atmel
und CW/CCW würde ich gern an Port B2 hängen.
Bitte habt verständniss, auch im Programmieren bin ich noch ein Anfänger.
Mein zusammengeschusterter Ansatz sieht z.Z. so aus:
/* Standard Includes */
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL
#include <util/delay.h>
/* Pin defs für Atmega */
#define Draht1 _BV(PB0) //hier CLOCK dran hängen
#define Draht2 _BV(PB1) //unbelegt!!! verhilft nur Draht1 zu einer Pause
#define Draht3 _BV(PB2) //hier CW / CCW dran hängen
#define Draht4 _BV(PB3) //mal sehen wofür der noch gebraucht wird
int main(void){
const uint8_t delay = 1; // Taktrate am CLOCK Pin bzw an Draht1
DDRB = 0xff; /* alle B Port Pins sind Outputs */
PORTB = 0x00; /* fangen alle bei 0V an */
for (int i=0;i<100;i++){ /* Schleife lässt Draht1 und 2abwechselnd 100 mal "blinken" */
PORTB = Draht1;
_delay_ms(delay);
PORTB = Draht2;
_delay_ms(delay);
// PORTB = RED;
//_delay_ms(delay);
//PORTB = YELLOW;
//_delay_ms(delay);
}
PORTB = 0x00; /*Endwert alle Pins von Port B auf 0V*/
return 0;
}
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen