Ich möchte ein Tastenfeld mit 12 Ausgängen an den ATmega8 anschließen. Allerdings wäre der PORT B schon voll belegt. Deshalb möchte ich anstatt des ATmega8 einen ATmega16 verwenden, denn bei dem kann man ja die Ausgänge auf zwei PORTs verteilen. Meine Frage ist nun, ob die Grundschaltung des ATmega16 die selbe des ATmega8 ist? Grundschaltung ATmega8 siehe: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Selbstbau Wenn nicht, wie sieht diese aus? Danke.
atmega8vs16 schrieb: > Meine Frage ist nun, ob die Grundschaltung des ATmega16 die selbe des > ATmega8 ist? Ja, nur liegen die Funktionen wie VCC/GND/Reset/... natürlich auf anderen Pinnummern, wenngleich geografisch ähnlich. Siehe Datasheet. Nachdem hier schonmal jemand die Belegung eines 20-Pin Tiny identisch auf einen 40-Pin Mega angewendet hatte, ohne sich drüber zu wundern dass die komplette rechte Seite unbeschaltet blieb, halte ich es nötig, darauf hinzuweisen. ;-)
Wenn man mehr Pins ansprechen will, investiert man schon mal gerne in ein Schieberegister (z.B. 4014 für rein und/oder 4015 für raus, je 24 Cent bei R), als 90 Cent für einen größeren AVR zu bezahlen. Das macht unter Umständen auch das Layout einfacher, weil man nur 2 bzw. 3 Leitungen zur Peripherie routen muss.
Danke für eure Antworten. A. K. schrieb: > Ja, nur liegen die Funktionen wie VCC/GND/Reset/... natürlich auf > > anderen Pinnummern, wenngleich geografisch ähnlich. Siehe Datasheet. > > > > Nachdem hier schonmal jemand die Belegung eines 20-Pin Tiny identisch > > auf einen 40-Pin Mega angewendet hatte, ohne sich drüber zu wundern dass > > die komplette rechte Seite unbeschaltet blieb, halte ich es nötig, > > darauf hinzuweisen. ;-) Hä? Also funktioniert das bei dem ATmega16 oder nicht? Das mit dem Schieberegister ist mir zu kompliziert.
atmega8vs16 schrieb: > Hä? Also funktioniert das bei dem ATmega16 oder nicht? Doch, im Prinzip schon, nur kannst du beispielsweise nicht einfach den Takt an Pin 9 anschliessen, sondern musst anhand des Datasheets vom Mega16 rausfinden, auf welcher Pinnummer dort der Takteingang liegt.
Stromversorgung, Schaltung des Quarzes ist identisch, aber halt an anderen Pins. Die Bedeutung Fuses sind auch bei jedem Stein anders, sogar bei sehr nahen Verwandten (siehe zum Beispiel Mega168 vs. Mega328). Die "Sonderfunktionen" der Pins sind auch teilweise auf anderen Ports. All dies verrät einem aber das Datenblatt.
Danke. Ich hab noch eine Frage: Im Datenblatt vom ATmega8 steht 23 Programmable I/O Lines (=23 programmierbare I/O Pins). Werden da die analogen Anschlüsse von PORT C auch mitgezählt? Weil die hätte ich noch frei.
atmega8vs16 schrieb: > Im Datenblatt vom ATmega8 steht 23 Programmable I/O Lines (=23 > programmierbare I/O Pins). Werden da die analogen Anschlüsse von PORT C > auch mitgezählt? Da werden beispielsweise die beiden Taktanschlüsse und der Reset mitgezählt, die aber nur als I/O verwendbar sind, wenn man sie für Takt und Reset nicht benötigt. Speziell beim Reset sollte man das aber nur machen, wenn man genau weiss was man tut.
Das Tastenfeld mit 12 Ausgängen könnte man über eine Diodenmatrix zusammenführen und an 4 Portpins anschließen. Funktioniert nur, wenn man keine Tasten gleichzeitig drückt. Ein Vorschlag dazu: Taste 1: an Pin0 Taste 2: an Pin1 Taste 3: Über 2 Dioden an Pin0 und Pin1 Taste 4: an Pin2 Taste 5: Über 2 Dioden an Pin0 und Pin2 Taste 6: Über 2 Dioden an Pin1 und Pin2 Taste 7: Über 3 Dioden an Pin0, Pin1 und Pin2 Taste 8: an Pin3 Taste 9: Über 2 Dioden an Pin0 und Pin3 Taste A: Über 2 Dioden an Pin1 und Pin3 Taste B: Über 3 Dioden an Pin0, Pin1 und Pin3 Taste C: Über 2 Dioden an Pin2 und Pin3 Zuerst wird in der Tastenabfrage-Routine geteset, ob irgendwo ein Signal anliegt(PIN-Register mit 0x0F ver&en und auf 0 vergleichen). Dann wird eine kleine Zeit gewartet, bis sich die Pegel richtig eingestellt haben. Dann kann man direkt seine Tastennummer auslesen. Taste A, die wahrscheinlich "Taste0" sein wird, würde ich dann mit einer bedingten Anweisung nachkorrigieren. mfg mf PS: Es müssen nicht unbedingt 18 Dioden verbraten werden, da gibt es auch noch diodenlosere, freie Kombinaionen unter den 15 Nutzbaren. Gehirnschmalz gefragt.
Und da wäre dann noch diese Variante: http://www.avr-asm-tutorial.net/avr_de/keypad/keyboard.html#adc
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.