Wenn Fragen aufkommen einfach hier rein posten!!!
Hallo Experten...
Bin ein absoluter Anfänger, habe mir auch schon einige Tutorials angeschaut. Leider liegt mir das Programmieren nicht sehr. Und auf die schnelle sich voll einarbeiten geht leider auch nicht. Ich schreibe derzeit meine Studienarbeit, und ein Teil, was im nachhinein dazu gekommen ist , ist die Programmierung eines Mikrocontrollers.
Ich möchte das ganze auch gerne lernen, doch geht es nicht, mit dem Zeitdruck, den mein Betreuer mir vorgegeben hat.
Denn er meinte, für einen, der das kann ist das eine Arbeit von nicht mal einem Tag...und ließ mich dann hängen
Gibt es Experten unter euch, die mich unterstützen können?
3 LED's habe ich schon zum leuchten gebracht, kann somit die Ports ansprechen. Aber wie ich nun die Ideen Umsetzen soll, weiß ich einfach nicht...
Bin in Not... Hilfe bitte
MC ist AT90S2313
Wenn Fragen aufkommen einfach hier rein posten!!!
Nur vor weg...
Bitte entschuldigt, wenn ich dumme Fragen stelle.
MC: AT90S2313
an PB3, PB4 und PB7 sind LED's angeschlossen.
Ein- und Ausschalten kann ich diese, wie folgt:
int main( void )
{
DDRB=0b11111011; //PortB (außer PB2) als Ausgang definieren
PORTB=0b11111111; //Port's auf High setzen, bzw. PB2 PullUp aktivieren
for(;
{
PORTB=0b01111111; //LED an PB7 einschalten
}
}
Bis hierhin ist alles ok.
Nun habe ich an PB2 einen Schalter gegen Masse.
Was ich möchte:
-> Schauen ob PB2 gegen Masse geschaltet ist
-> Wenn ja, LED an PB3 leuchten lassen
-> Wenn nicht, LED an PB7 leuchten lassen
-> Sobald umgeschaltet wird, möchte ich, dass die jeweils andere LED leuchtet (Also wenn LED an PB3 leuchtet, und ich schalte um, soll LED an PB7 leuchten)
Das ist es mal für den Anfang...(hatte ich recht mit "dummen Fragen"?
Hast du schon mal ins AVR-GCC Tutorial geschaut?
Da werden zumindest mal die grundlegensten Sachen in Bezug auf AVR und C Programmierung geklärt.
gibts auf mikrocontroller dot net und ich glaub auch hier im Downloadbereich in einer erweiterten Version.
Vielleicht hilft das ja?!
Hallo nochmals...
Ich habe Fortschritte gemacht.\/
Das Ein- und Ausschalten von den einzelnen Ports habe ich nun drauf. Eine kleine Umlötaktion, und der Schalter hängt nun an Port PD3 (INT1) Eingang. Das ganze wird nun per Interrup-Routine abgearbeitet.
Doch jetzt kommt der nächste Schritt.
Die Ausgänge sollen über UART angesteuert werden.
Und damit habe ich mein nächstes Problem: UART.
Gibt es irgendwo Beispielprogramme (im Tutorial leider nicht ganz fündig geworden)...
Vielleicht einige Worte zu dem, was ich machen möchte:
Empfange ich "CH1"
->Interrupt auslösen
-PB3 auf LOW
-PB4 auf HIGH
-PD5 auf LOW
-Rückmeldung an PC: "CH1_OK"
Empfange ich "CH2"
->Interrupt auslösen
-PB3 auf HIGH
-PB4 auf LOW
-PD5 auf HIGH
-Rückmeldung an PC: "CH2_OK"
Kann mir jemand weiter helfen?
Vielleicht ein Beispielprogramm?
Hallo,
Folgende Überlegung:
Ein char Array, als Puffer.
Permanent UDR auslesen, bzw, per interrupt nach ankommenden Zeichen überprüfen,
wenn was angekommen ist erst nach RETURN prüfen, wenn ja dann Puffer mit den Konstanten nacheinander vergleichen und entsprechende Funktion anspringen, wenn kein RETURN, Zeichen in Puffer schieben, gleichzeitig in UDR zurückschreiben (damit man im Terminal auch was sieht), Routine verlassen.
Gruß Sebastian
Ich hatte mal ein Beispiel für den UART geschrieben, vielleicht hilft dir das ja schonmal weiter:
http://www.kreatives-chaos.com/index.php?seite=c_uart
MfG Kjion
Hört sich Interessant an...das Problem ist nur, bin wirklich ein Anfänger, was Programmieren allg. angeht...Zitat von izaseba
Da bin ich vorhin hingekommen...Zitat von Kjion
Habe es auch abgeändert (für den AT90S2313), compiliiert und übertragen, kann natürlich auch Fehler eingebaut haben...
Die Frage ist...was macht es nun...(in meinem Fall tut sich leider nichts )
Sollte ich etwas im Hyperterminal sehen?
Ich will Dich nicht gerade, hmmm angreifen, aber Du kannst mir nicht erzählen, daß man von Euch Sachen verlangt, die Ihr nicht durchgearbeitet habt ?das Problem ist nur, bin wirklich ein Anfänger, was Programmieren allg. angeht...
Wie kann ich Dir sonst noch helfen? was verstehst Du nicht?
Gruß Sebastian
EDIT: Mit dem Beispiel von Kjion hast Du schon das halbe Programm fertig.
Lesezeichen