Ritchie
26.02.2012, 17:47
Hallo Zusammen,
hat jemand Erfahrung mit dem Fehlerhandling der Kontrollers "VNH2SP30-E" gemacht.
Laut Tabelle des Datenblatts ist ein Fehlerzustand vorhanden, wenn min der DIA-A Eingang auf Low geht.
Ich habe in der Schaltung 10kOhm Pullups eingebaut!
Wenn ich iState=0; entferne arbeitet die Schaltung nicht mehr, da ich einen Abbruch wegen Motorstatus bekomme.
Wenn ich die Signale mit einem Logikstift prüfe, sind die Signale auch auf High, also alles o.k. Der Fehler muss also in der folgenden Routine sein. Da ich von PIC ASM komme, habe ich ein wenig Probleme mit dem Ansprechen von I/Os unter C bei atmega.
// Definition of the I/O Setup of Port C
// Bit set to 1 = Output 0=Input
#define PORTC_DIRECTIONMASK 0x00
#define PORTC_PULLUP_SETUP 0x04
#define DATA_SCL PINC0
#define DATA_SDA PINC1
#define INPUT_BUMPER_DOWN_L PINC2
#define INPUT_MOTOR_L_DIAGB PINC3
#define INPUT_MOTOR_L_DIAGA PINC4
#define INPUT_MOTOR_R_DIAGA PINC5
#define INPUT_MOTOR_R_DIAGB PINC6
#define INPUT_FREE_PINC7 PINC7
//
// Get the state of the motor driver
//
char getMotorState(void)
{
char iState=0;
if( !(PINC & (1 << INPUT_MOTOR_R_DIAGA))) iState |= 0x1;
if( !(PINC & (1 << INPUT_MOTOR_R_DIAGB))) iState |= 0x2;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGA))) iState |= 0x4;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGB))) iState |= 0x8;
iState=0;
return (iState);
}
Gruss R.
hat jemand Erfahrung mit dem Fehlerhandling der Kontrollers "VNH2SP30-E" gemacht.
Laut Tabelle des Datenblatts ist ein Fehlerzustand vorhanden, wenn min der DIA-A Eingang auf Low geht.
Ich habe in der Schaltung 10kOhm Pullups eingebaut!
Wenn ich iState=0; entferne arbeitet die Schaltung nicht mehr, da ich einen Abbruch wegen Motorstatus bekomme.
Wenn ich die Signale mit einem Logikstift prüfe, sind die Signale auch auf High, also alles o.k. Der Fehler muss also in der folgenden Routine sein. Da ich von PIC ASM komme, habe ich ein wenig Probleme mit dem Ansprechen von I/Os unter C bei atmega.
// Definition of the I/O Setup of Port C
// Bit set to 1 = Output 0=Input
#define PORTC_DIRECTIONMASK 0x00
#define PORTC_PULLUP_SETUP 0x04
#define DATA_SCL PINC0
#define DATA_SDA PINC1
#define INPUT_BUMPER_DOWN_L PINC2
#define INPUT_MOTOR_L_DIAGB PINC3
#define INPUT_MOTOR_L_DIAGA PINC4
#define INPUT_MOTOR_R_DIAGA PINC5
#define INPUT_MOTOR_R_DIAGB PINC6
#define INPUT_FREE_PINC7 PINC7
//
// Get the state of the motor driver
//
char getMotorState(void)
{
char iState=0;
if( !(PINC & (1 << INPUT_MOTOR_R_DIAGA))) iState |= 0x1;
if( !(PINC & (1 << INPUT_MOTOR_R_DIAGB))) iState |= 0x2;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGA))) iState |= 0x4;
if( !(PINC & (1 << INPUT_MOTOR_L_DIAGB))) iState |= 0x8;
iState=0;
return (iState);
}
Gruss R.