Hallo zusammen
Ich habe ein klenes Problem mit meinem ATMEGA 32 5.
An PortG Pin 1 habe ich einen Optokoppler angeschlossen, welcher wenn
dieser ein Signal erhält den PortG Pin 1 auf 0 ziehen soll und so den
Pin 1 an PortA auf 1 setzt um den Transistor zu Schalten, welcher den
Stromkreis vom Relais schliesst und dieses Umschaltet.
Dies wollte ich mit einem Testprogramm ausprobieren nun will das einfach
nicht.
Folgendes Programm:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
uint8_t Eingangsregister = 0;
uint8_t Ausgangsregister = 0;
int main (void)
{
DDRA = 0xFF; /
PORTA = 0x00;
DDRG = 0xFE;
PORTG = 0x01;
DDRB = 0xFF;
DDRC = 0xFF;
DDRD = 0xFF;
DDRE = 0xFF;
while (1)
{
Eingangsregister = PING & 0x01;
if(Eingangsregister = 0x01)
{
Ausgangsregister = ~Ausgangsregister;
_delay_ms(500);
}
PORTA = Ausgangsregister;
}
}
So schaltet der Transistor durch und das Relais wird auch geschaltet.
Nach Überlegung müsste ja nun wenn ich den Optokoppler auf GND ziehe
(das dieser voll durchleitet) der Pin 1 von PortG auch auf 0 gezogen
werden und so PortA nicht mehr umschalten.
Könnt ihr mit weiter helfen?
Und noch was zur Zeit, die _delay_ms(500) bewirken eine Wartezeit von
5sek. welshalb ist das so? (Ich habe keinen externen Taktgeber und
verwende den Internen)
Herzlichen Dank im Voraus
Mfg
Dämlicher Fehler 'ist ja schon fast beschämend' :) Weisst du auch was ich wegen der Zeit machen muss?
Rahel Mischler schrieb: > Weisst du auch was ich wegen der Zeit machen muss? du wirst wohl die falsche Taktfrequenz eingestellt haben
Rahel Mischler schrieb: > #include <avr/delay.h> Davor muss der CPU-Takt definiert werden. #ifndef F_CPU #define F_CPU 16000000UL #endif für 16MHz. Oder in Project >> Configuration Options mfg.
Ein Fuse Bit war noch falsch gesetzt. Danke für die Hilfe :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.