C Anfänger sucht dringend Hilfe beim Programmieren eines STK500 in C

Andy7589

Neues Mitglied
14. Okt. 2011
1
0
0
Sprachen
Hallo an alle.

Mein Name ist Andy und ich bin gerade auf der Technikerschule.

Seit kurzem kam das Fach Mikrocontrollertechnik hinzu ich habe null - komma - null Ahnung um was es dabei geht.

Wir programmieren mit einem STK 500 über AVR Studio 5.0. Programmiersprache: C

Komme mit den Befehlen, wie zum Beispiel:

DDR(A,B,C,D)
PORT(A,B,C,D)
PIN(A,B,C,D)

etc. nicht so ganz klar. Ich weiß dass der PORT glaub ich Ausgabe und der PIN- Befehl EINGABE ist... Mehr aber auch nicht. Wie funktioniert das ganze Intern? bin mehr der SPS- Typ und kann mir des deswegen überhaupt nicht vorstellen.

Eine Beispielaufgabe:

Eine LED soll mit einem Taster (Bit 0) ein- , und mit einem anderen Taster (Bit1) ausgeschaltet werden.

Wie sieht das Programm dazu aus in C?

Hoffe Ihr könnt mir helfen.

Mfg Andy
 
Hi Andy,

herzlich willkommen im Forum :flowers:

Wir programmieren mit einem STK 500 über AVR Studio 5.0. Programmiersprache: C
Bei C kann ich leider nicht weiterhelfen ...

Komme mit den Befehlen, wie zum Beispiel:

DDR(A,B,C,D)
PORT(A,B,C,D)
PIN(A,B,C,D)

etc. nicht so ganz klar. Ich weiß dass der PORT glaub ich Ausgabe und der PIN- Befehl EINGABE ist... Mehr aber auch nicht. Wie funktioniert das ganze Intern? bin mehr der SPS- Typ und kann mir des deswegen überhaupt nicht vorstellen.
hier aber schon ;) Das mit der Ein- und Ausgabe ist schonmal richtig. Schau mal bei uns im FAQ-Bereich. Da hab ich das mal mit der internen Schaltung un den drei Registern erklärt. Danach sollte eigentlich ein Licht aufgehen. Wenn nicht frag einfach nochmal nach. Dann gibts "Einzelunterricht" ;) Ein Inhaltsverzeichnis von interessanten Artikeln ist ganz am Anfang des FAQ-Bereiches festgenagelt.

Eine Beispielaufgabe:

Eine LED soll mit einem Taster (Bit 0) ein- , und mit einem anderen Taster (Bit1) ausgeschaltet werden.
Wie sieht das Programm dazu aus in C?
C weiß ich so nicht aber das Funktionsprinzip kannich dir sagen.

Sagen wir mal beispielsweise du benutzt IO-Register B und die LED sitzt an Bit2. Wenn die Taster nach GND liegen und die LED auch dann wird also bei Tastendruck der Pin auf GND gezogen (0) und die LED wird mit +5V (1) eingeschaltet.

als erstes Initialisierung des IO-Ports über DDRB
DDRB auf 00000100 ...=> 0 = Eingang , 1 = Ausgang
dann die PullUp-Widerstände bei den benutzten Eingängen an
PortB auf 00000011 ...=> Bei Eingang und BortB-Bit = 1 ist der PullUp an

also danach baut man erstmal ne Endlosschleife in deren Eingeweide der restliche Kram reinkommt.

Abfrage ob PINB.0 = 0 ist (Taster schaltet nach GND) wenn ja, dann PortB.2 auf 1 setzen (LED an)
Abfrage ob PINB.1 = 0 ist (Taster schaltet nach GND) wenn ja, dann PortB.2 auf 0 setzen (LED aus)

das ist schon alles. Im großen und ganzen sind das so etwa knappe 10 Zeilen Quelltext. Sollte also in 5 Minuten reingetippt sein :eek: :rolleyes:

Gruß
Dino
 
Hallo Andy!

Willkommen in AVR-PRAXiS-Forum :)

Schau dir mal den Thread GPIOs in C von Nomis an. Es gibt auch ein Anfängertutorial, zum Beispiel bei unseren Kollegen vom Mikrocontroller.net.

Ich denke mal, das wird dir schon weiterhelfen.

Viel Erfolg.

Grüße,
Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)