Silverhawk
19.04.2006, 12:50
Ich habe ein 008 Board von Embedit gebaut ( http://www.embedit.de/embedit/usc008/USC008board.pdf).
Mein Problem besteht nun darin, dass ich es testen möchte, bzw. die Motoren mal testen möchte. Und ich bekomme es leider nicht hin. bisher habe ich auf allen 4 Kabeln 9V. (hab ne 9V Blockbatterie an das Board geschlossen).
Hier ist mein C-Quelltext:
/* Standard-Bibliotheken */
#include <avr/io.h>
#include <inttypes.h>
/* Programminterne Definitionen */
#define PORT_motor_ein PORTB // Port der Enable-Anschlüsse
#define PIN_motor_l_ein 2 // Pin des linken Enable-Anschlusses
#define PIN_motor_r_ein 1
#define PORT_motor_dir PORTD // Port der Richtungs-Anschlüsse
#define PIN_motor_l_for 4 // Pin des linken vorwärts-Anschlusses
#define PIN_motor_l_back 5 // evtl Pins anpassen (vertauschen)...
#define PIN_motor_r_for 7
#define PIN_motor_r_back 6
/* Prototypen */
void init (void);
int main (void) {
init ();
PORT_motor_ein |= (1<<PIN_motor_l_ein); // Linken Motor einschalten
PORT_motor_ein |= (1<<PIN_motor_r_ein); // Rechten Motor einschalten
PORT_motor_dir |= (1<<PIN_motor_l_back); // Ausgang für links rückwärts auf Low
PORT_motor_dir |= (1<<PIN_motor_r_back); // Ausgang für rechts rückwärts auf Low
PORT_motor_dir &= ~(1<<PIN_motor_l_for); // Ausgang für links vorwärts auf High
PORT_motor_dir &= ~(1<<PIN_motor_r_for); // Ausgang für rechts vorwärts auf High
do {
} while (1);
return (0);
}
void init (void) {
// 0 = Eingang, 1 = Ausgang
DDRB = 0b00001110; // DDR=Data Direction Register
DDRC = 0b00000000;
DDRD = 0b00001111;
// Alle Eingaenge hochohmig/Alle Ausgänge auf Low
PORTB = 0b00000000;
PORTC = 0x00;
PORTD = 0x00;
return;
}
Hoffe mir kann da jemand weiterhelfen. danke schonmal
Mein Problem besteht nun darin, dass ich es testen möchte, bzw. die Motoren mal testen möchte. Und ich bekomme es leider nicht hin. bisher habe ich auf allen 4 Kabeln 9V. (hab ne 9V Blockbatterie an das Board geschlossen).
Hier ist mein C-Quelltext:
/* Standard-Bibliotheken */
#include <avr/io.h>
#include <inttypes.h>
/* Programminterne Definitionen */
#define PORT_motor_ein PORTB // Port der Enable-Anschlüsse
#define PIN_motor_l_ein 2 // Pin des linken Enable-Anschlusses
#define PIN_motor_r_ein 1
#define PORT_motor_dir PORTD // Port der Richtungs-Anschlüsse
#define PIN_motor_l_for 4 // Pin des linken vorwärts-Anschlusses
#define PIN_motor_l_back 5 // evtl Pins anpassen (vertauschen)...
#define PIN_motor_r_for 7
#define PIN_motor_r_back 6
/* Prototypen */
void init (void);
int main (void) {
init ();
PORT_motor_ein |= (1<<PIN_motor_l_ein); // Linken Motor einschalten
PORT_motor_ein |= (1<<PIN_motor_r_ein); // Rechten Motor einschalten
PORT_motor_dir |= (1<<PIN_motor_l_back); // Ausgang für links rückwärts auf Low
PORT_motor_dir |= (1<<PIN_motor_r_back); // Ausgang für rechts rückwärts auf Low
PORT_motor_dir &= ~(1<<PIN_motor_l_for); // Ausgang für links vorwärts auf High
PORT_motor_dir &= ~(1<<PIN_motor_r_for); // Ausgang für rechts vorwärts auf High
do {
} while (1);
return (0);
}
void init (void) {
// 0 = Eingang, 1 = Ausgang
DDRB = 0b00001110; // DDR=Data Direction Register
DDRC = 0b00000000;
DDRD = 0b00001111;
// Alle Eingaenge hochohmig/Alle Ausgänge auf Low
PORTB = 0b00000000;
PORTC = 0x00;
PORTD = 0x00;
return;
}
Hoffe mir kann da jemand weiterhelfen. danke schonmal