Hallo, suche einen AVR Compiler und Programmierumgebung, habe zwar einige gefunden komme aber nicht so klar mit. AVR-Studio 4 AVR GCC Oder kann mir mal jemand erklären wie die funktionieren? Gruss aNton
also nochmal ich verstehe kein Wort und kann den zusammenhang nicht richtig begreifen. Also ich suche ein Programm wo ich den AVR- Programmieren kann wie z.B. .include "2313def.inc" ;Definitionsdatei laden .cseg ;Beginn eines Code-Segmentes .org 0 ;Startadresse=0 ; start: ldi r16,low(ramend) ;Stackpointer auf out spl,r16 ;RAM-Ende setzen ldi r16,0b00000001 ;PortB: PB0 auf Ausgang out ddrb,r16 ;setzen clr r16 ;Anfangswert setzen ; loop: out portb,r16 ;Daten an PortB ausgeben rcall wait ;Warteschleife aufrufen inc r16 ;Datenwert erhöhen rjmp loop ;Schleife neu beginnen ; ; Warteschleife (ungefähr 500ms) ; wait: ldi r19,10 ;r19, r18 und r17 clr r18 ;ergeben zusammen clr r17 ;einen 3-Byte-Zähler wait1: dec r17 ;niedrigstes Byte -1 brne wait1 ;0 erreicht? nein -> Schleife dec r18 ;mittleres Byte -1 brne wait1 ;0 erreicht? nein -> Schleife dec r19 ;höchstes Byte -1 brne wait1 ;0 erreicht? nein -> Schleife ret ;Schleifenende, Rückkehr dieses Testprogramm. dann suche ich ein Programm wo ich es Compilieren kann und mit PonyProg in den Chip schreiben kann. Gruss Anton Ich brauche Links wo ich die Programme einfach runterladen kann oder wie kann ich denn das sonst machen? Was ist eigentlich AVR-GCC was macht dieses Programm ich verstehe die Anleitung nicht! Gruss Anton
Hi Anton, sieh dir bitte mal diesen Link an: http://myplace.nu/avr/yaap/index.htm Diesen Programmer nutze ich jetzt seit einigen Monaten und bin sehr zufrieden damit Gruß, Günter
Hi Anton, wie ich aus einem früheren posting von Dir entnehme, benutzt Du PonyProg zum programmieren, damit wäre die Programmierung der controller ja geklärt. Wenn du deine controller in assembler programmieren willst, nimm AVR-Studio4, öffne ein neues Projekt, schreibe den code in assembler, führe build aus, öffne das .hex File mit ponyprog und bruzzel deinen avr. Wenn du in c programmieren willst, brauchst du AVR-Studio3 und den avr-gcc compiler dazu. Avr-studio3 muss dann eingerichtet werden für den c-compiler. Avr-Studio4 bietet (noch) nicht die Möglichkeit, einen externen c-compiler einzubinden. Lies dir die Tutorials und Anleitungen auf dieser Seite gründlich (!) durch, dann erledigen sich viele Fragen. Alle infos und downloads findest du unter http://www.mikrocontroller.net http://www.avrfreaks.net http://www.atmel.com Bei Fragen nochmal melden... Gruss Arvid
Hallo ich wollte mich bei allen über eure Beiträge bedanken, habe es jetzt auch geschafft. Da ich Anfänger bin, komm ich mit AVR Studio nicht zu recht, deshalb habe ich mir das Programm WAVRASM oder so ähnlich runtergeladen, ich finde das ok, leider bräuchte ich jetzt noch die Befehle in deutsch damit ich die begreifen kann, was jeder Befehl so alles macht. Vor 5 Jahren hantierte ich mit dem 80C535 herum, aber nur Schulische kenntnis d.h. wie dieser Chip wirklich funktioniert keine Ahnung, da wir ein fertiges ExperimentierBoard hatten, mussten wir nichts anderes tun als das programm zu schreiben und zu übertragen, das ich keinen blassen schimmer habe wie man den 80C535 extern mit einem EPROM beschalten tut kam mir der AT90S2313 gerade recht. Nach 5 Jahren hab ich auch schon die Befehle und das handling für den 80C535 vergessen. Kennt jemand von euch deutsche Internet Seiten über den AT90S2313 Befehlsatz und einigen Beispielen? Was ich suche ist ein einfaches programm wo ich an Port B 7 Bit als eingang habe und je nach dem was für eine Bitkombination erscheint der Chip es erkennt und am Port D auch eine 7 Bit leitung den Code ausgibt. Beispiel: Schalter 1 ist an einen GAL16V8 angeschlossen - bei betädigen des Schalters taucht am Eingan des AVR eine 7 bit lange Kombination "0000001" die wird von dem AVR erkannt und steuert seinen Ausgang mit der Kombinations "0000001" da am ausgang auch ein GAL16V8 angschlossen ist, steuert es dann den jeweiligen Verbraucher. Und immer so weiter. Denn ich habe vor bei unserem Auto einige Knöpfe zu verändern, da die elektr. Scheibenheber nicht so komfotabel sind. Aber alles mit der Zeit, erstmal will ich mal begreifen wie die Eingabe und Ausgabe im AVR geht. Danke an Alle! Gruss Anton
Hi Anton, ich habe nicht ganz verstanden was du tun möchtest. Was ist das für eine "Kombination" die am Eingang "auftaucht"? Und wozu sind die zwei GALs gut? Ich wette die kannst du dir sparen. Die allerersten Grundlagen zu Ein- und Ausgabe bei AVRs verrät dir http://www.mikrocontroller.net/tutorial2.htm . Wenn ich nicht so faul wäre, würde da ja schon ein bisschen mehr stehen... aber mal sehn, sind ja noch Ferien ;-) Gruß Andreas
Hallo Adreas, es ist eigentlich ganz einfach, ich benötige viele Eingänge deshalb benötige ich den GAL am Eingang so ähnlich wie ein AdressCodierer! Knopf 1 = "0000 001" Knopf 2 = "0000 010" Knopf 3 = "0000 011" . . . Knopf 30 = "xxxx xxx" Sonst nichts! Gruss Anton
Hi Anton, * wieso kommst Du mit AVR-Studio4 nicht zurecht??? * viele Einsteigerinfos findest Du hier auf dieser Seite * Port-Eingabe und Ausgabe geht mit den Befehlen out, in, sbi, cbi * Befehlssatz findest du unter http://www.eu.atmel.com unter Microcontroller / AVR Datasheet Instruction Set * um Englisch wirst du nicht herumkommen im Elektronik- bzw. Computerbereich * Schreibe bitte genauer, was du nicht verstehst Gruss Arvid
also das mit den GAL´s kapier ich nicht du kannst doch an die eingangsports des controllers direkt deine schalter anschliessen ...... und wieso willst du am ausgang das gleiche ausgeben wie am eingang ansteht ? wofür dann der controller ? vielleicht solltest du dich erst mal mit den grundlagen von mikroprozessoren befassen und bei der gelegnheit auch deine englischkenntnisse verbessern (denn da kommst du wirklich nicht drumherum) dann kommst du vermutlich auch mit dem avr-studio zurecht, denn ich finde das ist eine der genialsten und einfachsten systeme für die avr´s...
Hallo Karlheinz, also ich hatte schonmal mit Microcontroller der Fam. 80C535 zu tun, aber bitte! Wofür soll der GAL sein, also ich erkläre es dir es sei denn du kannst mir an dem AT90S2313 mehr als 15 Taster anschließen, wenn du das schaffst , dann verbeuge ich mich und ich benötige den GAL wirklich nicht. Ansonsten muss ich meine Variante mit dem GAL durchziehen. Das Studio Prgramm brauch ich nicht, ich hab einen spez. Editor runtergeladen und der reicht mir vollkommen. Also man hört sich. Gruss Anton
also ich wollte dich wirklich nicht beleidigen, sorry wenn das so ankam aber ich habe neulich erst im usenet einen beitrag gesehen wo einer fragte warum der assembler kein komma bei dezimalzahlen akzeptiert .... also: SORRY anyway, schon mal ueber eine eingangsmatrix fuer deine taster nachgedacht ? zum bleistift 3 ausgaenge nacheinander setzen und 3 eingaenge abfragen welcher dabei jeweils gesetzt ist ? 3 in x 3 out = 9 taster 4 in x 4 out = 16 taster
Hallo Karlheinz, sorry, auch wegen mir, ich hätte nicht so direkt sein sollen. Ich hatte auch schon einige Beiträge wo ich harte Antworten bekommen habe, als ob es voraussetzung sein müsste die Sachen zu wissen, dann bräuchte ich auch keinen Forum mehr wenn ich alles wissen würde :-) Aber egal, dein Vorschlag mit dem Crosspoint-Schalter (4x4X) z.B. 22100 ist auch keine dumme Idee :-) Der nachteil ist natürlich wieder müsste ich Bestellen, komme nicht mehr von einer gróßstadt wo es elektronikläden gibt fg und die GAL*s hätte ich hier in massen! Bei einem stell ich mich total blöd an, (sorry wenn es für dich jetzt ein bisschen sich blöd anhören tut :-)) kann ich wenn ich z.B. jetzt meinen AT90S2313 4 Tatster anschließen und jeden Taster mehrere funktionen einprogrammier, aber so das jeder Taster jeder Zeit drückbar ist obwohl einer von den vier gedrückt sind? Ich hoffe du bist mitgekommen fg Beispiel: Fensterheber ich drücke auf dem Knopf ca. 2sek lang dann fährt meine Scheibe hoch, parallel dazu drückt meine Freundin von Ihrer Seite Ihr Taster öfter um an die richtige position mit Ihrem Fenster zu fahren. Was ich eigentlich mit dem AT90S2313 machen wollte eine Inteligente Fensterheben Steuerung bei meinem Auto, ob es sich rentiert ist ne andere Frage :-) Da es mich aber nervt immer die Fenster hochzufahren bevor ich den Zündschlüssen zurückdrehen muss. Das war bei meinen Eltern im OPEL OMEGA B viel komfortabler :-) und das wollte ich natürlich nachmachen, meine Kenntnisse sind schon ein wenig eingerostet, aber mit der Zeit fallen mir immer ein paar Sachen von damals wieder ein :-) Also nichts für ungut Karlheinz auch wegen vorhin bei meiner Antwort! Danke! Gruss Anton
naja, solange die taster nicht am selben input-pin liegen geht das natürlich man müßte sich halt vorher überlegen welche taster parallel gedrückt werden können und auch entsprechend ausgewertet werden müssen ich will dir ja auch keine GAL´s oder so ausreden ... ich würde halt prinzipiell so wenig bauteile wie möglich verwenden ( schon alleine deshalb weil jedes ja eine fehlerquelle darstellt) aber so langsam komme ich dahinter was du eigentlich willst *grins und da ich eigentlich gar keine erfahrung mit GAL´s habe würde ich zur not einen dezimal-bcd wandler einsetzen aber warum mußt du irgendwas bestellen wenn du eine tastaturmatrix an den controller anschliessen willst ? IN 1 |--/--/--/--/- IN 2 |--/--/--/--/- IN 3 |--/--/--/--/- IN 4 |--/--/--/--/- | | | | OUT 1 --| | | | OUT 2 ----| | | OUT 3 -------| | OUT 4 ----------| die ausgaenge 1-4 werden nacheinander gesetzt und dann jeweils anhand der eingaenge ermittelt welche taster gedrückt sind
Siehe auch den entsprechenden Beitrag im "Codesammlung"-Forum. PS: ASCII-Malereien funktionieren hier im Forum nicht, also am besten als Textdatei im Anhang posten.
danke für den tipp, bin halt recht neu hier im Forum :-) andrerseits: wenn ich was male ist das eh nicht zu erkennen, ob im als ASCII oder als Textanhang :-)
Hallo Karlheinz, ja, so wenig bauteile wie möglich will ich nähmlich auch :-) Ich mag eh keine protzige Schaltunge, sag mal kennst du Eagle? Wenn ja weißt du wie man Schaltungen Zeichnet und das das Programm die Leiterbahnen automatisch berechnet? Ne, du verstehst was falsch, ich hab keinen Matrix IC, muss ihn erst bestellen :-( Ein GAL ist was wunderbares :-) Das muss du dir unbedingt aneignen :-) Gru Anton
eagle ist wohl das am weitesten verbreitete layout proggi, allerdings muss ich gestehen dass ich mich damit nicht auskenne, das gehört wohl auch nicht in das forum hier aber wie gesagt, was willst du mit einem matrix ic (was immer das auch sein mag)?
Hallo Karlheinz, ich denk wir reden die ganz Zeit ein wenig vorbei, erklär mal wie so eine EingangsMatrix bei dir so aussieht, also so wie ich das verstanden habe ist das kein IC, und was soll das sonst sein? Mit dem GAL, wollte ich so eine 64 bit eingans-MATRIX realisieren. Pin 1 des Gals ist ein Eingang an dem ein Taster angschlossen ist, und am Ausgang des Gals das 7 bit breit ist, also 7 Pins, soll "0000 001" Ausgegeben werden. und immer so weiter Gruss Anton
Hi Anton schon mal an einen 74hc151 gedacht? 3 Pins vom AVR als Ausgänge und 1 Pin als Eingang schalten. Schalternummer ausgeben und Du kannst am Eingang den Zustand abfragen. Damit sind dann auch Kombinationen (Schalter 1+3) möglich, die Abfrage läuft ja seriell. Und so ein 151er kostet bei Reichelt z.B nur 0.25 Euro. 1 IC, 3 Ausgänge, 1 Eingang -> 8 Tasten 2 IC, 3 Ausgänge, 2 Eingänge ->16 Tasten (das hab ich vor) 9 IC, 6 Ausgänge, 1 Eingang -> 64 Tasten peter
na sieh zum bleistift mal hier nach: http://www.goblack.de/desy/digitalt/sensoren/teleftast/index.html
Hallo, ich verstehe nicht warum ihr alle so kompliziert denkt! Es geht doch viel leichter und kompfortabler mit einem GAL! Also wie ihr sehen könnt ist mein GAL1 als Input geschaltet, dort kann ich 8 Taster anschließen, wenn ich einen Taster drücke, dann Codiert der GAL das Signal als 7 Bit Code an den AT90S2313. Der AVR hat jetz die Aufgabe, das gesendete Signal am Port B zu enschlüsseln. Dabei wir am Ausgang des AVR der gleiche 7 bit Code an dem Port D gesendet und gelangt in den GAL2, so das der GAL dann weiß welchen Motor er steuern soll! So kann ich beliebige viele Taster und verbraucher anschließen wie ich mag! Aber nicht mehr als 7bit Kombinationen. Da wo der GAL1 ist kann ich Parallel an den Port B noch einen 2ten GAL anschließen und die 7 bit Leitung zum AVR verbinden und keinen extra Pin von dem AVR verbrauchen. Und am Ausgang des AVR's genau das selbe. Wer mit der beigefügten TXT Datei nichts anfangen kann, zeichne ich gern die Schaltung neu aif ein Papier und Scan dies ein. Gruss Anton
Du willst also so eine Art Prioritätsencoder bauen und die Ausgänge der GALs verbinden? Dann mußt du Die anderen hochohmig schalten. Wie steuerst du das? Wenn Du 2 Taster gleichzeitig betätigst, hast Du sonst eine Art Kurzschluß oder eine völlige Fehlinterpretation der Tasten. Mit einem 7 Bit Eingangswert hast du nur 128 Kombinationen! Willst Du beliebige Kombinationen zulassen kannst Du nur 7 Schalter anschließen. Willst du max. 2 gleichzeitig abfragen, dann max. 16 Schalter. 16 Schalter bedeutet 16*15/2=120 Kombinationen (*). 17 Schalter bedeutet 17*16/2 = 136 > 128 Kombinationen, also zuviel. Ich sehe noch nicht wie Deine Lösung funktionieren soll, außer wenn du sicherstellen kannst, immer nur eine Taste zu drücken. Meines Meinung nach entweder die Multiplexerlösung mit dem 151er (o.ä.) oder eine Tastaturmatrix mit einer Hand voll Dioden und, wenn du Ports sparen mußt, zusätzlich Schieberegister oder (74138, 74154...) für die Zeilenauswahl. peter PS: (*)die Logikschaltung für 16 Schalter will ich sehen, kein Eprom bitte :-)
Also ich hab da mal eine ziemlich trickreiche Schaltung zur Abfrage einer Tastaturmatrix gesehen. Und zwar kann man, wenn man über Ports verfügt, die sich sowohl als Ein- als auch als Ausgänge schalten lassen (ist ja beim AVR gegeben), durch Einfügen von Dioden in die Matrix der Tastatur das Ganze mit total wenigen (Einzel-)Ports abfragen. Leider finde ich die Schaltung nur nicht mehr, die war nämlich einfach genial. Gruss, Peter
Hallo Peter, ok, das mit dem GAL's geb ich ja zu, das hat mich auch gestört, das ich keine mehreren Kombinationen machen konnt, aber das wollt ich ja ausprobieren, da ich wie schon erwähnt außer Übung bin und für mich nicht auf anhieb alles Logisch erscheint, deshalb liebe ich ja dieses Forum und schreib erst meine unperfekten Ideen in das Forum und warte auf kritik oder verbesserungen. :-) Ok ich hab mir mal gedanken gemacht was du erzählt hast, mit dem 74151, jedoch ersetze ich den 151 auf 74150, das ist ein 16to1 Multiplexer. Anbei schicke ich als Anhang eine unvertige Konstruktion mit 16 Eingängen und 16 Ausgängen, die Seriell in den AT90S2313 eintreffen und augegeben werden. Dabei verhält sich der AVR mit den restlichen Ports (PB1,PB2,PB3,PB4) wie ein Zähler und Taktet die beiden De- und Multiplexer. Was meinst du ist es jetzt besser? Wenn ich z.B. jetzt 32 Ein/Augänge möchte benutze ich die restlichen Ports, oder? Oder gibt es eine Kaskadier möglichkeit? mit den Multiplexer?! Sag mal, das Register wo du gemeint hattest? Speichert die Eingaben ab und gibts sie dann weiter? Kannst du mir mal einen nennen? Ich hab mit Registern nicht so viel am Hut :-) Gruss Anton
Hi Anton, die Eingangsseite sieht gut aus, vom 150er hab ich kein Datenblatt (obwohl ich mir fast 600MB, das sind >1000 pdf's, von http://www.philipslogic.com auf meinen Rechner gespiegelt hab), aber wenn der wie der 151er arbeitet ist das genau das, was ich mir vorgestellt habe. Eingänge vom Multiplexer mit Pullup versehen und dann per Taster auf Masse legen. Bei 32 Eingängen baust Du die gleiche Seite für den Eingang nochmal und nimmst einfach einen 2ten Eingangspin. Für den Zähler natürlich auch wieder PB1-PB4 nehmen. Das ist wohl das Einfachste. Ich sehe kein Problem darin, Multiplexer zu kaskadieren. Also 16 Multiplexer mit je 16 Tasten in Ebene 1 und dann einen Multiplexer in Ebene 2 der die 16 Ausgänge der ersten Multiplexer auf einen Portpin (natürlich hier andere Portbits als Zähler verwenden, d.h. ein längerer Zähler). Zur Ausgangsseite kann ich leider nichts sagen. Mein Entwurf (mein erster Versuch mit nen Microcontroller) existiert bisher auch nur auf elektrischem Papier (hab grad teilweise die Platine für CPU/RAM entworfen) und im AVR Studio. Und wenn man die Ausgänge in Multiplexverfahren immer nur kurz (ist ja nur max. 1 Pin Low, also selektiert) einschaltet könnte das ja je nach Verbraucher Probleme bereiten. (LED flackern vielleicht, Motoren laufen nicht an, Sirenen in Form eines Multivibrators funktionieren evtl. gar nicht....). Ich brauche bei meinem Projekt (nen Reversi Spiel) 64 DUO LED's und 4 7Seg. Anzeigen (160 Bit Daten). Ich hoffe mal das ich da auch irgendwas mit Multiplexen machen kann, hab wenig Lust 20 74373 Latches zu verbauen. Hängt davon ab, wie stark das ganze flimmert. Ansonsten halt die IC-Grab Lösung, könnte ich dann leicht Memory Mapped bauen (ich nehm nen 8515 mit zus. 8K ext. SRAM) Das mit dem Schieberegister bezog sich auf diese Standard 4*4 Keyboardschaltung. Da wäre ja auch 32*4 oder so denkbar und die 32 Anschlüsse, von denen dann immer genau einer selektiert wird, verbindest du mit den Schieberegistern statt direkt mit Portpins. Peter
Hallo Peter, ok mal sehen wenn mich meine Freundin morgen lässt probier ich das mal aus mit dem Multiplexer die Bauteile müsste ich eigentlich alle da haben. Wenn du den 74150 als Datenbtall brauchst scan ich ihn dir ein und schick ihn dir! Das mit RAM und der Rest wo du erzählst hast, ist noch etwas hoch für mich! Aber kommt Zeit... kommt Erleuchtung fg Also machs gut man hört sich :-) Gruss Anton
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.