Kollege: du kannst keine Nuller shiften !
sowas schaut immer so aus (1<< param)
Hallo,
ich bin relativ neu in der AVR C Gemeinde und wollte nun ausprobieren, wie man die Schrittmotorsteuerung des RNBRFA 1.22 Boards zum Laufen bringt.
Dazu habe ich mich direkt an das Bascom Beispielprogramm 5 gehalten und diesen Code quasi nur nach C konvertiert.
Dazu ein Auszug der wichtigen Stellen in meinem Code:
Dummerweise dreht sich keiner der beiden Motoren. Beide Motoren stehen unter Strom, lassen sich also von Hand nicht mehr drehen, was für mich bedeutet, dass die Treiber angeschalten sind.Code:void init(void) { i2c_init(); i2c_start(PCF3_WRITE_ADR); i2c_write(0x02); //Peripherie an = (00000010) i2c_stop(); i2c_init(); i2c_start(PCF2_WRITE_ADR); i2c_write(0x00); //alle 4LEDs aus = (00000000) i2c_stop(); //Schrittmotoren einrichten DDRD |= (1 << 6); //PortD.6 Pin als Ausgang setzen DDRC = 0x3C; //PortC.(2-5) Pin als Ausgang setzen PORTD |= (0 << 6); //Schrittmotoren Aus PORTC |= (0 << 4); //Schrittmotor Rechts Richtung PORTC |= (0 << 5); //Schrittmotor Links Richtung init_timer0(); //Timer starten } int main (void) { init(); // Hardware einstellen gehen uint16_t zeit = 500; //ms //Schrittmotoren einschalten PORTD |= (1 << 6); while(1) { PORTC |= (1 << 2); //PING Motor2 PORTC |= (1 << 3); //PING Motor1 waitms(zeit); PORTC |= (0 << 2); //PONG Motor2 PORTC |= (0 << 3); //PONG Motor1 waitms(zeit); } }
Ich finde leider keinen Hinweis, warum sie sich nicht drehen.
Der vollständigen Quelltext inkl. Makefile ist im Anhang...
Für Hilfe wäre ich sehr dankbar...
Kollege: du kannst keine Nuller shiften !
sowas schaut immer so aus (1<< param)
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Danke für diesen Hinweis. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Nun geht es natürlich .
Lesezeichen