Gast
#2995505
Hallo,
ich hab ein Problem mit der Implementierung einer Porterweiterung . Im
Anhang habe ich die verwendete Schaltung aufgeführt. Ziel ist es mit
einem Mikrocontroller (Atmeg64) den Baustein M74HC595B1R anzusteuern.
Zum Testen verwende ich folgenden Code:
void init_relaismatrix(void)
{ DDRA |= 0b00000111;
//001 ist SCK
//010 ist MOSI
//100 ist OE
}
void ctrl_relaismatrix(uint8_t a)
{ int k;
for(k=0;k<8;k++)
{
if((a&(1<<k))>0)
PORTA |= 0b00000010;
else
PORTA &= ~(0b00000010);
PORTA |= (0b00000001);//CLK setzen
_delay_ms(100);
PORTA &=~(0b00000001);//CLK löschen
_delay_ms(100);
}
PORTA |= 0b00000100; //OE
_delay_ms(100);
PORTA &= ~(0b00000100); //OE
}
Das große Problem ist, dass ich meiner Meinung nach die richtigen
Signale messe, aber die Ausgänge des Bausteins trotzdem immer bei 5V
bleiben.
Hat jemand von euch Profis vielleicht eine Idee, was ich bei der
Implementierung falsch mache?
Danke schon im Voraus
Hans
