Komische Spannung am Ausgang eines Atmega
Hallo,
ich habe folgendes Problem:
ein atmega 32 soll signale ein einen motortreiber (L293D) weitergeben.
Jetzt funktioniert allerdings nicht mehr wie es soll, der motor dreht sich nicht. Am Ausgang des Atmega, der mit den EN eingang des Motortreibers verbunden ist, messe ich eine spannung von 0,7V, es sollten aber 5V anliegen. Wodran könnte das liegen?
Mfg Wisda.noobie
Liste der Anhänge anzeigen (Anzahl: 1)
Schaltplan ist im Anhang, hier der Quellcode:
Code:
#include <avr/io.h>
#include <util/delay.h>
#define high(MOT) (PORTC |= (1<<(MOT)))
#define low(MOT) (PORTC &= ~(1<<(MOT)))
#define enhigh(EN) (PORTD |= (1<<(EN)))
#define enlow(EN) (PORTD &= ~(1<<(EN)))
#define MOT1 PC6
#define MOT2 PC7
#define EN1 PD5
#define F_CPU 1000000
#define TASTER PD3
#define TASTER_1 (PIND & (1<<TASTER))
int main(void)
{
DDRD = (1 << DDD0) | (1 << DDD1) | (1 << DDD4) | (1 << DDD5) | (1 << DDD6); //PD 0,1,4,5,6 Als ausgänge, alle anderen als Eingänge
DDRB = (1 << DDB0) | (1 << DDB1); // PB 0,1 als ausgänge, alle anderen als eingänge
DDRC = (1 << DDC4) | (1 << DDC5) | (1 << DDC6) | (1 << DDC7); // PC4,5,6,7 als Ausgänge, alle anderen als Eingänge
//Motor 1 - Eingänge: PC7, PC6
//Motor 1 - Enable: PD4
//Motor 1 - LED: PB0
//Motor 2 - Eingänge: PC5, PC4
//Motor 2 - Enable: PD5
//Motor 2 - LED: PB1
//Taster hinten: PD2
//Taster Vorne: PD3
//LED Kollision: PD6
//LED OK: PD1
//LED FEHLER: PD0
while(1)
{
{
PORTC = PINC ^ ( 1 << PC7 );
PORTC = PINC ^ ( 0 << PC6 );
PORTD = PIND ^ ( 1 << PD4 );
PORTB = PINB ^ ( 1 << PB1 ); //Motor1 vorwärts, LED an
}
}
return 0;
}
ich vermute ja irgendwie einen Kurzschluss, kann aber nichts derartiges finden...
Es geht jetzt speziell um den pin PC7, der als ganz normaler ausgang genutzt wird.
gerade ist mir auch aufgefallen, dass der pin 4 (OC1B) 2,5V liefert....
mfg wisda.noobie
Edit: schaltplan vergessen ](*,)