Tag Jungs Ich bin ein Anfänger in dem Bereich, und möchte anhand eines Ausgangs eines Atmega88 ein Transistor ansteuern .wäre die schreibweise so richtig oder nicht? PORTC = (1 << DDC3); Transistor ein PORTC &= ~(1<<PC3); Transistor aus Danke Aron
Aron schrieb: > PORTC = (1 << DDC3); Transistor ein > PORTC &= ~(1<<PC3); Transistor aus so reicht es aus: PORTC = (1 << 3); Transistor ein PORTC &= ~(1 << 3); Transistor aus
Düsendieb schrieb: > so reicht es aus: > > PORTC = (1 << 3); Transistor ein > PORTC &= ~(1 << 3); Transistor aus Warum gibst Du einem Anfänger, der auf vorbildliche Weise symbolische Konstanten verwendet, die Empfehlung, dies nicht zu tun?
Aron schrieb: > PORTC = (1 << DDC3); Transistor ein Hallo Aron, das einschalten würde ich ein wenig abändern: PORTC |= (1 << PC3); //Transistor ein Durch das ODER ( | ) werden die anderen Pins am Port C nicht verändert, statt "DDC3" würde ich der Übersichtlichkeit halber "PC3" schreiben. Aber ansonsten stimmt alles!
Hi Danke für euere schnelle Antwort ich habe jetzt mein Program geändert, leider tut sich nicht viel. Ich habe ein Overflow programmiert die mir jede Sekunde 3 anlaoge Spannungen misst.die dritte Spannungen wird nachdem einschalten eins Transistors gemessen. nun habe ich das Problem, dass die Spannung abwechslend richtig oder falsch messe. Beispiel: erste Messung richtig--> nächste Rotiene---> Messung falsch---> nächste Rotiene--> Messung Richtig und so weiter. Ich bin mir sicher das liegt an der Steuerung des Transistors aber ich weiss nicht was falsch ist, vielleicht wirft jemand einen Blick auf meinen Programm, mit der Hoffung ein Fehler zu finden PS: Ich verwende ein Atmega88 MfG Aron
Oha, da sehe ich böse Fallen! 1.) Variablen Deklaration unsigned int adc=0.0 .... bringt nichts... ein unsigned int ist immer ganzzahlig. 2.) Der Interrupt Du rufst in deiner Interrupt Routine eine externe Routine auf: Macht man nicht, und sollte eigentlich auch nicht gehen. Du hast keine Variablen Volatile Deklariert (z.b. adc0.. etc...) Du sendest aus deiner Interrupt Routine an die UART... böse Falle... Deine Interruptroutine sollte wenn möglich nur einen Läufer setzen, in deiner Hauptschleife in Main sollte dieses dann alles berechnet werden.
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.