Hallo, Habe seit kurzen ein AVR STK 500 Nachdem ich mal kurz Probiert habe die LED´s zum Leuchten zu bringen wollte ich jetzt das die LED´s über einen Taster geschaltet werden. Sprich taster drücken led an. Aber egal was ich auch versuche es will einfach nicht klappen. Gruß Marc
Schau ins AVR-Gcc-Tutorial hier auf der Seite. Übrigends, Code als Dateianhang statt als Bild ist sinnvoller. :-)
Hi Beim STK500 ist ein nicht gedrückter Taster H. ein gedrückter L. Und die LEDs leuchten bei L und sind bei H aus. MfG Spess
Hallo, in das Tutorial hab ich schon rein geschaut. Leider Verstehe ich da nur bahnhof und abfahrt. Hab schon einiges umgestellt aber entweder ist dann die LED aus und will auch nicht bei Tasten druck leuchten oder umgekehrt.
Das PORTx-Register ist zum setzen eines Ausganges, oder für die Pullups. Du brauchst zum Einlesen eines Wertes von einem Port aber das PINx-Register. Also musst Du anstatt "k=PORTA" "k=PINA" schreiben. PORT-Register: Zustand eines Ausganges setzen PIN-Register: Zustand eines Einganges einlesen Gruß Jonathan
Hallo ja das ist mir klar das ein low an der led diese zum leuchten bringt. und ein gedrückter Taster ein high rausgibt. aber egal wie es klappt nicht.
Dein if-Konstrukt macht meiner Meinung nach nicht so viel Sinn. Versuch' doch das hier:
1 | while (1) |
2 | { |
3 | k=PINA; |
4 | PORTB=k; |
5 | } |
Das liest einfach den Zustand deiner Eingänge (die 8 Pins von Port A) ein und gibt sie direkt auf Port B aus. Gruß Jonathan
So hab das jetzt mal geändert. Jetzt sind alle led´s aus, wenn ich einen Taster drücke passiert nichts. Was ich nicht so ganz verstehe ist ich weise zwar einen port zu aber muss ich da nicht genau die pin zuweisen sprich PINDx und PORTx
Mach doch einfach mal Copy&Paste und ersetze deine Hauptschleife durch die, die ich gepostet habe.
Hallo Jonathan, hab es Probiert funktioniert einwandfrei. Danke warum hat das aber mit dem anderen nicht geklappt.
Hallo Spess, ja das hatte ich geändert mit dem PortA auf pina aber das brauchte nichts. Stimmt das vieleicht was in der schleife nicht
Bei deiner ersten Version liest Du das Ausgangsregister (PORTx) aus. Dieses ist allerdings nur dazu da, den Zustand eines Ausganges zu schreiben, und nimmt nicht den wirklichen physikalischen Zustand deines Ports an. Wenn der Port als Eingang konfiguriert ist, kann man mit dem PORTx-Register die Pullups an- oder abschalten. Das PINx-Register repräsentiert dagegen den wirklichen physikalischen Zustand deines Ports und wird zum Einlesen vom Zustandes eines Einganges benutzt. Kurz gesagt: PORTx zum Setzen eines Ausganges, PINx zum auslesen eines Einganges. Gruß Jonathan
Marc schrieb: > ja das hatte ich geändert mit dem PortA auf pina Ach so. Das liegt dann an deinem komischen if-Konstrukt. Schau dir mal im AVR-Tutorial das Kapitel Bitmanipulation an.
Hallo Jonathan, Ja das hatte ich auf PINA geändert, funktionierte trozdem nicht. was ich aber jetzt gar nicht mehr verstehe ist das die LED´s brennen wenn ich den Taster Drücke. Den eine nicht Leuchtende LED hat 5 V anliegen und Leuchtet bei GND. Ein Taster hat erst bei der Betätigung 5V.Das heißt im mom. wenn der Taster 5V rausgibt schaltet der MC auf GND der LED. Das müsste doch Negiert sein.
..schauch auch mal in zB. diesem DB: http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf ab seite: 72 Kapitel 14. Da siehst du die Verschaltung von DDxn PORTxn PIN xn der Atmels. Die Register für "in" und "out" sind bei Atmels anders als z.B. bei Pics zwei physikalisch unterschiedliche Adresse/Register. Gruß, M.
Nee ok es Passt habe gerade nachgemessen Die LED Leuchtet Gegen GND Der Taster gibt Betätigt GND raus. doch keine Negierung Danke
Hallo, Also das was Jonathan gepostet hat war super aber wie weise ich jetzt die ports den ausgängen zu zum beispiel SW1 soll LED 5 schalten.
Das wird im AVR-Tutorial (im Kapitel Bitmanipulation) doch erklärt... Nur mal als Tipp:
1 | if (PINA & (1 << 4)) |
Gruß Jonathan
Hallo Jonathan, Du bist der beste Danke. Ja hab mir das auch schon alles durch gelesen. Allerdings sieht es so aus das ich mit MC noch nie was zu tun hatte. Und somit auch nur bahnhof verstehe :-( Gruß Marc
Hallo Ich bin neue hier,und würde fragen.Ist jemend hat schon Erfahrung oder Idea für Programmierung für AT3 Series Mikrocontroller von Firma GRAF-SYTECO. Ich würde mein Erfahrung und Program (C-codes)besprechen.Vielen dank und VG
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.