Autor |
|
|
|
BID = 428813
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
|
Hi
Ich suche ein Übungsboard zum kaufen das folgende Kriterien erfüllt:
Das Board sollten LED´s, Taster und ein LC -Display haben zudem sollten die Ports auf einen freien Stecker geführt sein oder so das ich externe Schaltungen anschließen kann.
Ich wollte mit einem ATMEL Programmieren.
Kann mir irgendjemand etwas empfehlen?
Mfg
Rambodischien |
|
BID = 428876
elektroluchs Gesprächig
Beiträge: 194 Wohnort: Austria
|
|
Hallo!
Ich kann dir das hier empfehlen: Humerboard. Ich arbeite mit dem SB8v2006 und ich muss sagen, dass dieses Board seinesgleichen suchen muss. Allerdings wird ein 8051er verwendet und kein AVR, aber ich habe auch mit 8051ern angefangen und programmiere nun AVRs, die Programmiertechnik ist ja im Grunde immer gleich.
Pollin hat übrigens ein Entwicklungsboard für AVRs im Programm, das ist allerdings nicht so üppig ausgestattet wie das obere.
mfg
elektroluchs |
|
BID = 428976
stefan_z Gelegenheitsposter
Beiträge: 57 Wohnort: Köln
|
Ich würde an deiner Stelle mal das Pollin-Board testen...
Is mit das billigste, hat 3 LEDs und 3 Taster und auch sonst was man so braucht.
Wobei man AVRs zum flashen natürlich auch einfach an ein altes Druckerkabel anlöten kann
All die ganze Schnickschnacks wie Grafik-LEDs, i2c onboard, etc ist eher too much.
Wenn du sowas brauchst, dann bestell Samples bei nem chiphersteller und n paar Segmentanzeigen für 20 ct bei Pollin - Basteln muss sein
|
BID = 428996
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
ich würde mir auch das pollin board kaufen......da ist zwar kein display dran aber das sollte nicht sooo schwer sein..........man muss ja net gleich mit dem display anfangen sondern erst mal led blinken lassen;) es sind glaube ich alle ports nach außen geführt...
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|
BID = 429171
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
Danke für die schnellen Antworten.
Der von Pollin ist sehr billig aber er hat keinen USB-Anschluss. Den benötige ich weil ich nur einen Laptop habe .
Was haltet ihr von diesem Board?:
http://www.myavr.de/shop/artikel.php?artID=47
bei diesem Board ist auch ein Programmer dabei nur weiß ich nicht genau was das bedeutet.
MFG
Rambodischien
|
BID = 429172
BlackLight Inventar
Beiträge: 5316
|
Zitat :
Rambodischien hat am 13 Mai 2007 09:50 geschrieben :
|
Was haltet ihr von diesem Board?:
... |
Auf die Board von myAVR wollte ich die Tage auch verweisen, aber bin nicht dazugekommen.
Ich hatte mir mal das Board 'myAVR Bausatz 1.5 LPT' besorgt - quasi die LPT-Variante vom 'USB 2'.
Ist eigentlich recht gut und durchdacht gemacht (z.B. Schottky-Gleichrichter an ungenutzte LPT-Leitungen um es auch ohne extra Spannungsversorgung eingeschränkt betreiben zu können).
Aber nur mit der Testversion von 'myAVR Workpad PLUS' die beiliegt ist kaum damit zu arbeiten.
Also je nach Projektumfang würde ich noch 'myAVR Workpad PLUS' oder die C-Version einplanen.
(Mir ist es nicht gelungen, sowas wie AVR Studio zum laufen zu bringen, hab aber ehrlichgesagt es auch nicht lange probiert.)
> bei diesem Board ist auch ein Programmer dabei nur weiß ich nicht genau was das bedeutet.
Ich meine damit ist nur die Hardware bzw. dieses USB-Modul gemeint, schau hier: http://www.myavr.de/shop/artikel.php?artID=42
|
BID = 429174
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
Zitat :
|
(Mir ist es nicht gelungen, sowas wie AVR Studio zum laufen zu bringen, hab aber ehrlichgesagt es auch nicht lange probiert.)
|
Vielen Dank für die schnelle Antwort.
Schade dass AVR Studio nicht läuft genau dieses Programm benutzen wir in der Schule und ich wollte das gleiche benutzten.
Mfg
Rambodischien
|
BID = 429204
BlackLight Inventar
Beiträge: 5316
|
Zitat : Rambodischien hat am 13 Mai 2007 10:30 geschrieben :
| Schade dass AVR Studio nicht läuft... |
Das hab ich doch nicht gesagt.
Ich war zu blöd, AVR Studio innerhalb von 11,73 s mit dem Board zum laufen zu bringen - wobei beides für mich neu war.
|
BID = 430686
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
OK vielen Dank für eure Antworten.
Ich habe mich für das AVR-Board von myAVR entschieden.
Wenn ich zeit habe werde ich meine Meinung in diesem Thread posten.
Nocheinmal vielen Dank an alle.
Mfg
Rambodischien
|
BID = 432410
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
Habe das Board bekommen und sch6n einige Programme geschrieben mit den LED´s und dem Summer nur habe ich jetzt das Problem das ich nicht weiß wie ich das LCD einbinden kann. Ich habe das myAVR-Board V2.0. Kann mir irgendjemand erklären wie ich das LCD initialisieren kann. Bitte.
Von der Schule habe ich eine Initialisierung bekommen doch die ist für ein anderes Board. Kann man dieses File irgendwie umändern damit ich auch damit arbeiten kann?
Das Datenblatt von dem Display: http://www.myavr.de/download/techb_lcd_22.pdf
Danke im voraus
Mfg
Rambodischien
|
BID = 432514
Dombrowski Stammposter
Beiträge: 450
|
Moin.
Die Kommentare im Quelltext sind leider etwas konfus und passen teilweise nicht zum Programmcode. Man sucht sich dort zuerst die Portbelegung der ursprünglichen Hardware zusammen. Die dürfte so sein:
Code : |
PORTD.3 - PORTD.0 <--> LCD D7 - D4
PORTD.4 <--> LCD RS
(PORTD.5 <--> LCD RW ??)
PORTD.6 <--> LCD EN |
|
Als nächstes schlage ich vor, dass du im Quelltext eigene Kommentare hinzufügst, die das beschreiben, was die Programmzeilen wirklich machen. Und zwar bei den Befehlen, die direkt die LCD Ansteuerung betreffen:
Code : |
[...]
PORTD = 0b01000000; // E setzen; RS u. Daten löschen
[...]
zeichen |= 0x10; // Setzen von RS vorbereiten
[...] |
|
Und dann setzt du das in die Bits und Bitmasken für die neue Hardware um - anhand der LCD Belegung im PDF File. In der Routine lcd_zToLCD musst du die Datenbits vershiften, damit sie an die richtige Position gelangen. Und diesen Umstand musst du bei der Bitmaske für die RS Leitung berücksichtigen. Die neue Routine lcd_zToLCD könnte so aussehen:
Code : |
void lcd_zToLCD (unsigned char dataD)
{
PORTD = _BV(PD3); // LCD E Bit setzen; E Bit ist auf PORTD.3
_delay_us(200); // Wartezeit 200us
PORTD |= ((unsigned char)(dataD << 4) | (unsigned char)(dataD >> 4));
// LCD Daten u.ggf. RS setzen; LCD Daten sind auf PORTD.7-D.4
_delay_us(200); // Wartezeit 200us
PORTD &= ~_BV(PD3); // LCD E Bit löschen; E Bit ist auf PORTD.3
} |
|
Ich rate dazu, für Bitnummern und Bitmasken symbolische Namen zu verwenden, und nicht direkt Zahlenwerte. Das macht es verständlicher.
Noch übersichtlicher wird es, wenn man Funktionen mit passenden Namen einführt:
Code : |
void setze_E_high()
[...]
void setze_RS_low()
[...] |
|
Allerdings wird dadurch etwas Laufzeit und Programmplatz verplempert.
Apropos, bei der LCD Ansteuerung wird weniger Zeit verplempert, wenn die Abfrage des BUSY Bits eingebaut ist.
D.
|
BID = 432526
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Zu den Bitmasken:
Es ist besser, wie bereits erwähnt, keine fixen Zahlen ala 0b1000 oder 0x13 für Portausgaben zu verwenden. Denn sobald die Hardware geringfügig geändert wird, mus alles neu ausgerechnet werden.
Besser:
#define E_ PORTD4
#define RS_ PORTD5
#define RW_ PORTD6
#define PORT_E_ PORTD
#define PORT_RS_ PORTD
#define PORTD_RW_ PORTD
#define DDR_E_ DDRD
#define DDR_RW_ DDRD
#define DDR_RS_ DDRD
//Initialisierung etc...
DDR_E_ |= 1<<E_; //Bit E in DDRD setzen
DDR_RS_ |= 1<<RS_; //auch das Bit RS_ auf Ausgang schalten
...
Der Compiler macht daraus bloß folgendes (Optimierung am besten)
sbi DDRD, 4 ;E in DDRD setzen
sbi DDRD, 5 ;RS ""
---
Das sieht erstmal ziemlich heftig aus, weil sehr kompliziert. Aber es hat sehr viele Vorteile:
- Der Kode ist schnell bei guter Optimierung
- Es werden überhaupt keine fixen Zahlen mehr benutzt, mal davon abgesehen, dass sowas wie 0b1001010 normalerweise in C überhaupt nicht gebräuchlich ist
- Man kann schnell Hardwareänderungen ausgleichen, indem man einzig die #Define-Zuweisungen ändert
- Steuerleitungen (E, RS, RW) müssen nicht zwanghaft am gleichen Port hängen. Kann man dies jedoch sicherstellen, dann wirds noch kürzer:
DDR_Steuer |= (1<<E_|1<<RS_|1<<RW_);
- Flanken, wie beispielsweise die fallende E-Flanke, lassen sich so sehr komfortabel machen:
PORT_E_ |= 1<<E_; //E setzen
asm("nop"); //hier kleine Verzögerung, muss nicht nop sein, meistens musses überhaupt keine Verzögerung sein...
PORT_E_ &= ~(1<<E_); //nun die Flanke fallen lassen
Du siehst, es kann auch scheinbar komplizierter gehen, aber leichter wirds dadurch.
Am besten sogar eine Headerdatei mit Deklarationen, #defines und anderen Präprozessoranweisungen anlegen, an deren Ende dann der eigentliche Treiber eingebunden wird. Der Programmierer bindet dann nur die Headerdatei ein, stellt seine Hardware ein und fertig ist die Laube.
_________________
|
BID = 432556
Rambodischien Schreibmaschine
Beiträge: 1341 Wohnort: Österreich
|
WOW Danke für die schnellen antworten.
Ich glaube ich habe da noch einiges vor.
Ich werde mich mal ans zeug machen und mich mit der Materie vertraut machen.
Vielen Dank
Rambodischien
|