mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik erstes AVR-Schaltung


Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wir machen jetzt ein kleines Projekt (für die Schule) Spannungen und 
Ströme auf einem Display darstellen soll.
Da ich mich schon seit längerem mit PIC beschäftige, habe ich jetzt eine 
Schaltung gekrizelt und einiges vom Pic übernommen und stadtdessen einen 
ATMEGA 8 draufgesetzt.

Folgende Daten:

Stromversorung: stabilisierte 5V
Display: 4bit Modus, HD44780 kompatibel
interene ADC Referenzspannung

Könnt ihr mal drübersehen ob ihr irgendwelche fehler seht?

MfG
Lukas

Autor: Lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst Du den zum Programmieren immer aus dem Sockel ziehen? Mach' mal 
noch einen ISP Anschluss dran.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LCD Ansteuerung ist nicht erkennbar (lesbar)

Mir fehlt der ISP Anschluss

Ansonsten sieht der Teil links vom µC gut aus.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der linken Seite kann ich die Netzlabels einfach nicht lesen.

Du hast so viele freie Pins, ich würde RXD und TXD frei halten, um 
später (oder früher bei der Entwicklung) eine RS232 Verbindung zum PC zu 
haben.

Die ISP-Programmierleitungen sind nicht angeschlossen. Wie programmierst 
du den AVR?

Was heisst PWM-Lüfter? Ist das ein Messsignal (Lüfter => AVR) oder ein 
Steuersignal (AVR => Lüfter). Wenn letzteres, dann eher an ein OCR1x 
hängen.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja ISP ist ne Gute ide, habs eben dazugemacht.

PWM: Ja der AVR soll ein PWM ausgeben und damit die Drehzahl 
(Leistungsabhänig regeln, ist nicht ganz soo das wahre aber die 
Lüfterregelung ist nicht so wichtig eher optional).

RS232 könnte ich wirklich frei halten, muss das aber noch mit meinem 
Projektpartner besprechen.

MfG Lukas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du sicher, dass du beim ISP Anschluss dein eigenes Süppchen kochen 
willst?

Hier
http://www.mikrocontroller.net/articles/AVR_In_Sys...
findest du die beiden gebräuchlichen Standard-Pinbelegungen für 6-pin 
und 10-pin Anschlüsse

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas B. schrieb:

> Ja der AVR soll ein PWM ausgeben und damit die Drehzahl regeln
>> dann eher an ein OCR1x hängen.
denn dann kannst du die PWM per Hardware des AVR erledigen lassen.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Bist du sicher, dass du beim ISP Anschluss dein eigenes Süppchen kochen
> willst?
das Problem ist, ich hab für die ganze Sache recht wenig Platz, weil es 
soll ein Aufsatz werden, der hinter das Display geschraubt wird, 
Problem: kein SMD, keine Doppellayer.

Für das ISP kann ich doch ein Adapterkabel machen oder ?!

zur PWM:
Stimmt, es ist sinnvoller eine Hardware-PWM zu machen, muss ich nochmal 
das Pflichenheft ändern.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas B. schrieb:
> Karl heinz Buchegger schrieb:
>> Bist du sicher, dass du beim ISP Anschluss dein eigenes Süppchen kochen
>> willst?
> das Problem ist, ich hab für die ganze Sache recht wenig Platz, weil es
> soll ein Aufsatz werden, der hinter das Display geschraubt wird,
> Problem: kein SMD, keine Doppellayer.
>
> Für das ISP kann ich doch ein Adapterkabel machen oder ?!

Kannst du.
Aber eigentlich gehen die ISP Verbindungen zu den Standard-Anschlüssen 
relativ einfach, wenn der Wannenstecker neben den Pins mit den 
Anschlüssen platziert wird.

Klar kannst du auch ein Adapterkabel machen. Aber wozu? Verdrahte gleich 
alles richtig auf der Platine und du hast nicht noch ein Teil, das 
irgendwo rumlungert und genau dann unauffindbar ist, wenn man es 
braucht.

Im Zweifel orientiert man sich an der Pinbelegung vom Kabel, welches mit 
dem Programmer mitgeliefert wurde. Und meistens ist das eine der beiden 
im Link angegebenen.

Autor: Jörn Paschedag (jonnyp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du schon alles richtig machen willst, dann hol dir mal bei cadsoft 
eine neue atmel.lbr, denn viele ATmegas haben keinen AGND (analog gnd) 
sondern nur GND. Das gilt besonders für die hier im Forum oft 
verwendeten ATmega8, 16, 32, 644 usw.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Kannst du.
> Aber eigentlich gehen die ISP Verbindungen zu den Standard-Anschlüssen
> relativ einfach, wenn der Wannenstecker neben den Pins mit den
> Anschlüssen platziert wird.

Das problem ist halt wir haben auf der Platine sehr wenig Platz, darum 
kann ich nur 90° gewinkelte Pfostenstecker verwenden.

Ich werde jetzt den Schaltplan nochmals neu machen.

Grüße Lukas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas B. schrieb:
> Karl heinz Buchegger schrieb:
>> Kannst du.
>> Aber eigentlich gehen die ISP Verbindungen zu den Standard-Anschlüssen
>> relativ einfach, wenn der Wannenstecker neben den Pins mit den
>> Anschlüssen platziert wird.
>
> Das problem ist halt wir haben auf der Platine sehr wenig Platz, darum
> kann ich nur 90° gewinkelte Pfostenstecker verwenden.

Das versteh ich jetzt nicht.
Was hat das damit zu tun, welche Belegung du diesen Pins gibst?

Ich glaube wir reden aneinander vorbei. Es geht nicht darum, ob du 
6-polig oder 10-polig benutzt. Es geht darum, wie du die 6 Stifte mit 
den Signalen belegst.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
>> Das problem ist halt wir haben auf der Platine sehr wenig Platz, darum
>> kann ich nur 90° gewinkelte Pfostenstecker verwenden.
>
> Das versteh ich jetzt nicht.
> Was hat das damit zu tun, welche Belegung du diesen Pins gibst?
>
> Ich glaube wir reden aneinander vorbei. Es geht nicht darum, ob du
> 6-polig oder 10-polig benutzt. Es geht darum, wie du die 6 Stifte mit
> den Signalen belegst.

Ja stimmt, hab ich falsch verstanden.
Dann werde ich den 6 Poligen Stecker verwenden.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt die Schaltung nochmals überarbeitet.
Die PWM ist wird nun auf dem OC1A ausgegeben und die ISP-Schnittstelle 
sollte dem "Standard" entsprechen.

Grüße Lukas

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich seh gerade, das man den PWM ausgang nicht erkennen kann, hängt am 
Pin 15, PB1(OC1A).

Autor: Jörg Diettrich (jjoe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir (Februar 2010) das AVR-Net Board von Pollin gekauft. Der 
Grund war die vorhandene Ethernetschnittstelle über die ich 
kontinuirlich Daten auf einen anderen Rechner übertragen will. Über die 
ISP Schnittstelle habe ich Mittels PonyProg den Flash ausgelesen und 
festgestellt das 28 kb durch die Firmware belegt bzw. reserviert sind. 
Die restlichen 4 kb will ich für eigene Routinen nutzen.
Das Problem:
Die Firmware muss an geigneter Stelle durch beispielsweise einen call 
Befehl ergänzt werden. Die Quellen der Firmware stehen nicht zur 
Verfügung. Am einfachsten währe es deshalb den HEX Dump durch einen call 
mit direkter Sprungadresse zu ergänzen. Jede andere Lösung zur 
Einbindung eigener Routinen währe mir natürlich auch recht.
Meine Bitte:
Kennt jemand die Pollin Firmware -oder eine alternative Firmware- und 
kann mir sagen an welcher Stelle im HEX File ich einen call Befehl mit 
Sprungadresse einfügen kann?
Ich programmiere in Assembler weil ich da einige Erfahrungen habe.
Im Voraus Danke für die Antwort.

Jörg

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Findet ihr noch fehler oder kann ich jetzt Layouten, ich denke es müsste 
jetzt Passen oder ?!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke, das sollte so jetzt passen.

Denk dran: C3, C6, C7 nahe an die entsprechenden Pins ran.

Eines ist mir noch aufgefallen: Du sagst ganz am Anfang: LCD im 4 Bit 
Modus, hast aber alle 8 Datenbits vom LCD verdrahtet. Das ist jetzt 
sicher kein Beinbruch und lässt natürlich beide Optionen offen. Aber 
wenn ihr sowieso auf eine 4 Bit Übertragung aus seid, könnte man am 
Anschluss Pins einsparen bzw. ein Kabel mit weniger Adern nehmen. Und 
wenn du die R/W Leitung vom LCD sowieso auf die Platine führst, kannst 
du sie auch gleich am µC anschliessen anstatt sie fix auf GND zu legen. 
Musst sie ja nicht benutzen. Aber wenn man sie benutzen will (zb die 
Fleury Lib will sie haben), dann ist sie da. Pins am µC hast du ja noch 
frei und wenn es routungstechnisch kein Problem macht ....

Ach, ich seh grad, du hast dir PD0 und PD1 freigechaufelt. Das ist gut. 
Ich würde da allerdings den LCD Anschluss noch ein wenig umwürfeln, so 
dass die 4 Datenleitungen ein Nibble bilden (also entweder an die 0-3 
Datenpins oder 4-7). Klar kann man das in Software ausgleichen, das ist 
kein Beinbruch. Aber einfacher ist es doch, wenn ich ein Byte einfach in 
Nibble zerlegen kann und dann die 4 Bit nicht auch noch grossartig 
zurechtschieben muss um sie auf Position zu bringen. Ohne Not würde ich 
die Datenleitungen da nicht 'so krumm' an den Port schalten wenns nicht 
sein muss.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war bis jetzt die Pflicht, was ist mit der Kür? :-)

Du hast weiter oben mal erwähnt, dass ihr Platzprobleme kriegt. Denkst 
du, du bringst noch einen Transistor samt Basiswiderstand unter? Dann 
könnte man die Hintergrundbeleuchtung des LCD über eine PWM vom µC aus 
einstellbar machen. Den OCR1B hast du ja noch frei. Von dort über den 
Basiswiderstand auf einen NPN. Collector from NPN an Pin 16 vom Stecker. 
Emitter an Masse. Als NPN geht sicherlich ein BC373 oder so etwas in der 
Richtung.

Ist ein Gimmick, zugegeben.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin auch Anfänger und sehe gerade deinen Schaltplan.
Hier habe ich eine Frage zu EAGLE. Wie machst du diese grauen "Fähnchen" 
wo du beschriften kannst, was daran angeschlossen wird?

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Du hast weiter oben mal erwähnt, dass ihr Platzprobleme kriegt. Denkst
> du, du bringst noch einen Transistor samt Basiswiderstand unter? Dann
> könnte man die Hintergrundbeleuchtung des LCD über eine PWM vom µC aus
> einstellbar machen. Den OCR1B hast du ja noch frei. Von dort über den
> Basiswiderstand auf einen NPN. Collector from NPN an Pin 16 vom Stecker.
> Emitter an Masse. Als NPN geht sicherlich ein BC373 oder so etwas in der
> Richtung.

Jein, ich würd's ja gern einbauen, aber ich wills nicht übertreiben, da 
meine Projektpartner nicht so "Sattelfest" sind (nach dem Moto: weniger 
ist mehr ;))

Zum 4 Bit Modus, ja beim Stecker sind alle 8 Datenleitungen 
"beschriftet", aber nur die 4 Datenleitungen angschlossen.

Zum Eage:
Gib der leitung einen Namen, dann auf links unten gibts ein Symbol mit 
ABC und einem Strich, draufklicken, über der Befehlszeile gibts dan ein 
Icon mit dem Fähnchen, anklicken und dan die Leitung anklicken. du Kanst 
dan auch noch die Größe und so ändern

Autor: Jörn Paschedag (jonnyp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu muss aber xref auf on geschaltet sein (change xref = on) und gibt's 
auch nur in der 5.x version ;-)

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hab jetzt mal ein Layout gemacht.
Ich bin zwar damit gar nicht zufrieden, brings aber Einseitig und ohne 
SMD nicht besser her.
Hat noch jemand Tipps oder Anregungen??

Mfg Lukas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du die Platine selber fertigen oder gibst du die in Auftrag?

Wenn du sie selber fertigst: Druck dir alles 1:1 aus und sieh dir den 
Ausdruck an. Die Restringe deiner Brückenendköpfe sind winzig! Denk 
daran: Du musst das ätzen, bohren und löten können!

Wenn du den Quarz ein wenig nach links rückst passen die 
Lastkondensatoren für den Quarz noch locker bei den Anschlusspins rein.

Wenn du links für den Widerstand die Anschlusspins weiter 
auseinanderrückst, brauchst du die Leitungen nicht so zusammenquetschen. 
Ditto rechts: Den Widerstand könnte man so legen (Anschlüsse 
auseinander), dass zumindest 2 der 3 Brücken unnötig werden.

X4 ein wenig näher zum Prozessor und schon kannst du mit der Vcc Leitung 
aussen rum fahren und wieder eine Brücke einsparen

Wenn du selber fertigst musst du auf die eine Bahn um unteren Rand 
achten. Bahnen die direkt am Rand liegen verschwinden schon mal gerne in 
der Fertigung (zumindest bei mir)

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt das Layout nochmals gemacht, ich werde es vorübergehend 
lassen und in der Schule fertigen lassen.

Ich werde mich nun der Programmierung witmen, werde dazu erst mal das 
AVR-Tutorial auf den Kopf stellen und die Benötigten Programme 
installieren.


Das Programm sollte folgende Funktionen besitzen:
  - Beim einschalten wird auf dem Display eine kleine kurze Meldung
    erscheinen, die zeigt, was das Gerät kann ( ca. 2-3sec)
  - Dann sollte die Spannung, der Strom, die Abgegebene Leistung auf dem
    Display dargestellt werden.
  - die Drehzalregelung des Lüfters sollte über die Verlustleistung
    geregelt werden (ev. Mittelwertbildung oder so was)

Programmieren möchte ich alles in C mit dem GCC-Compiler, anfangen werde 
ich mit der Ansteuerung des LCD's, gibts gute LCD-Libs die ihr mir 
Spontan empfehlen könnt?

Grüße Lukas

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wir haben nun mit der Proogrammierung begonnen, zur ansteuerung des 
LCD's verwenden wir das AVR-GCC-Tutorial: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu....

jetzt hab ich folgendes Problem: ich habe wie oben beschrieben, die 
Port's für's LCD DB4 - DB7 sind auf DB4 - DB7 gelegt. In der 
LCD-routine.h ist eine Anmerkung, das die Port's DB0 - DB3 mit dem LCD 
verbunden werden.
// Pinbelegung für das LCD, an verwendete Pins anpassen
 
#define LCD_PORT      PORTD
#define LCD_DDR       DDRD
#define LCD_RS        PD2
#define LCD_EN        PD3
// DB4 bis DB7 des LCD sind mit PD0 bis PD3 des AVR verbunden 

Kann uns da jemand weiterhelfen??

Grüße
Lukas

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Benutzen einfach den nibble von dem Port zur Ansteuerung mit Daten. 
Du willst alle Ports ändern, das geht mit dem Code nicht direkt. Du 
musst mal hier im Forum gucken da gibt es eine abgewandelte Version mit 
der man alles ändern kann!

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas B. du vermanschst Portpins mit der Bezeichnung DBx mit Portpins 
mit der Bezeichnung PDx.

Die Portpins des LCD sind DBx bezeichnet. Die Portpins des AVR sind 
PDx bezeichnet (wenn PORTD am AVR benutzt wird). Die Verbindungen LCD 
<-> AVR müssen also DBx <-> PDx lauten.

> ich habe wie oben beschrieben, die
> Port's für's LCD DB4 - DB7 sind auf DB4 - DB7 gelegt.

Das ist eine vermanschte Verbindung "LCD <-> LCD"

> In der
> LCD-routine.h ist eine Anmerkung, das die Port's DB0 - DB3 mit dem LCD
> verbunden werden.
> ...
> // DB4 bis DB7 des LCD sind mit PD0 bis PD3 des AVR verbunden

Das bedeutet:
LCD     AVR
===========
DB4     PD0
DB5     PD1
DB6     PD2
DB7     PD3

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Stefan, das hab ich schon verstanden,das mein Problem, das isch 
habe, es ist DB4 mit PD4 verbunden....

> LCD     AVR
> ===========
> DB4     PD0
> DB5     PD1
> DB6     PD2
> DB7     PD3

Ich mir jetzt den einen Threath durchgelesen und werden die kommenden 
tage die Schaltung test.

Danke @all

Grüße Lukas

Autor: Soenio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist noch gerade was aufgefallen, Zwar nicht kritisch und weiß auch 
nicht genau was du für eine Festinduktivität benutzt, aber wenn SMCC 
nimmst mach einen größeres "Raster" auf 12mm, sonst wird es eng mit dem 
Biegen.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soenio schrieb:
> Mir ist noch gerade was aufgefallen, Zwar nicht kritisch und weiß auch
> nicht genau was du für eine Festinduktivität benutzt, aber wenn SMCC
> nimmst mach einen größeres "Raster" auf 12mm, sonst wird es eng mit dem
> Biegen.

meinst?? Wird woll reingehn. Spulen hier, ähneln einem Widerstasnd nur 
ein wenig dicker...

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wir haben nun die Schaltung aufgebaut.
Haben ein kleines testprogramm aus dem AVR-Tutorial zusammen kopiert und 
versuchen dies in den AVR zu proggen.

Wir benutzen das AVR Studio und als Programmer verwenden wir den MyAVR 
Smartprog.

ich habe versucht das Compilierte Programm in den AVR zu laden, und zwar 
über:
Tools --> AVRprog --> Hex file geladen und dann auf Programm Flash.

Leider funktioniert es irgendwie nicht und es kommt eine Fehlermeldung, 
das er in eine Adresse nicht schrieben kann oder so was ähnlichs (siehe 
Anhang).

Ich habe leider zu spät gelesen, das ich die Fusebits setzen muss, wir 
wissena ber auch nicht wo ??!!, im AVR prog gibts noch weitere 
einstellungen unter Advanced, wissen aber nicht was wir da einstellen 
müssen.

Ich hab mal das gesamte Projekt als ZIP-File angehängt.

Grüße
Lukas

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner ne Idee oder einen Vorschlag??

Autor: netdieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hol Dir mal PonyPro: http://www.lancos.com/prog.html
Damit kannst Du die Fuses lesen und setzen.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Inhalt deiner HEX-Datei von 11:07 Uhr ist nicht sinnvoll:
:020000020000FC
:100000000000FF01FFFF00F8000000000000FFFFFC
:10001000FFFF0000000000003F00FFFF00FF0000A6
:1000200000000000FF00FFFF00FF000000000000D4
:10003000FFFFFFFF0000000000000000FFFFFFFFC8
...

Die anderen Dateien im Ordner Default von 9:44 Uhr sehen gut aus. Mich 
wundert dass allein die HEX-Datei neuer ist. Kann es sein, dass das eine 
aus dem Atmega8 ausgelesene und verstümmelte HEX-Datei ist? Ich würde 
ein Rebuild All versuchen, um die richtige HEX-Datei zu restaurieren.

Kannst du mal einen exakten Link zur Beschreibung deines Programmers 
schicken? Bei MyAVR finde ich nur andere Bezeichnungen als dir von dir 
angegebene: 
http://shop.myavr.de/index.php?sp=artlist_kat.sp.p...

Wenn ich mir z.B. die Beschreibung des mySmartUSB light 
(http://www.myavr.info/download/produkte/mysmartusb...) 
durchlese, habe den Verdacht, dass du mit AVRPROG die falsche 
Programmiersoftware verwendest.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich verwenden folgenden Programmer:
http://shop.myavr.de/index.php?sp=article.sp.php&a...

Das komische an der ganzen Sache ist, wenn ich auf Write Flash gehe 
schreibt er irgendwas und bringt dan die obige Fehlermeldung, Lese ich 
den Flash bringt er mir keine Fehlermeldung... ok von mir aus ich stekte 
das ISP Kabel ab und lies ihn nochmal lesen, und siehe da er lass 
fehlerfrei, ich weis nicht was das Ding gelesen hatt auf jedem Fall das 
Falsche

Ich steh zur zeit aum schlauch und Komm nicht weiter, ich find im AVR 
nicht mal die Einstellungen wo ich die Fusebits setzen kann...

Grüße Lukas

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas B. schrieb:

> Ich steh zur zeit aum schlauch und Komm nicht weiter, ich find im AVR
> nicht mal die Einstellungen wo ich die Fusebits setzen kann...

Zu den Fuseeinstellungen kommt man im AVR Prog unter dem Button 
Advanced

ACHTUNG Leseversuche sind in Ordnung. Schreibversuche erst machen, 
wenn alles tipitopi funktioniert!

AVR Prog User Guide
http://www.atmel.com/dyn/resources/prod_documents/...

myAVR mySmartUSB MK2
Version 2.11
Technische Beschreibung
http://www.myavr.info/download/produkte/mysmartusb...

In deiner Schaltung vermisse ich eine onboard Spannungsversorgung, d.h. 
Spannung kommt von "irgendwo".

Wenn du beim ISP Programmieren die Schaltung durch den myAVR mySmartUSB 
MK2 versorgst, dann unbedingt alle Verbraucher ausser dem Atmega8 
abklemmen. Weil du kannst nur <80mA aus dem ISP Adapter entnehmen. Wenn 
du als Last ein LCD angeschlossen hast, wird die Vcc in den Keller 
gehen. BTW. hast du schon Messungen zu Vcc gemacht?

> irgendwas ... ich weis nicht was das Ding gelesen hat ...
> Ich steh zur zeit aum schlauch und Komm nicht weiter

Solche Fehlerbeschreibungen sind das Herz jeder Fernfehlersuche :)

In deiner Stelle würde ich genauso wie in den Beschreibungen vorgehen 
und die Resultate auf dem Bildschirm mit den Beschreibungen vergleichen. 
Bei Abweichungen würde ich hier nachfragen und SOLL/IST zeigen.

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Stefan das hab ich gesucht :)
Ich werde am Wochenende die PDF's durchakkern und ausprobieren

Grüße Lukas

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nach langer Zeit habe ich nun beim Projekt mit dem Programmieren 
begonnen.
Die LCD - Ansteuerung klappt soweit, allerdings ist das ganz 
kompliziert,
und ich muss von grund auf neu Programmiern, nun Habe ich eine Variable 
gemacht, die die 1te Zeile des Displays speichert, diese setze ich wie 
folgt zusammen:

  int voltage = 1.20;
   int current = 9980;
  int power = 1.35;

  char zeile_1[20];
  char zeile_2;

  char zeile_1_temp1[8] = "Strom: ";  // Speicher für Strom
  char zeile_1_temp2[9]; // Speicher für Strom wert
  char zeile_1_temp3[2] = "mA "; // Speicher für Strom einheit

...

  
    sprintf( zeile_1_temp2, "%d", current );// Convertiert alles Mögliche ium siehe:
                  //http://www.mikrocontroller.net/articles/FAQ#sprintf.28.29
                  // Tabelle unten!
                  // !!!!!!!!!!FUNKTIONIERT NICHT MIT DER TABELLE WARUM??!!!!!!!!!!!!!!


    set_cursor(0,1);      //Setzt den Coursor auf die Erste Zeile
    strcpy(zeile_1, zeile_1_temp1);// Setzt den String Zusammen 
    strcat(zeile_1, zeile_1_temp2);// aus TEMP1, TEMP2, TEMP3
    strcat(zeile_1, zeile_1_temp3);// und speichert in zeile_1
    lcd_string(zeile_1);


ich möchte später der Variable zeile_1_temp2 einen Double Wert 
übergeben, leider Klappt das Konvertieren nicht:

...
 f    float, double
...
sprintf( zeile_1_temp2, "%6.3f", current );
Auf dem Display wird immer statt dem Wert ein ? angezeigt, dabei ist die 
variable current auf double umdefiniert.

Weiß jemand von euch wie man das hinbiegt?

Grüße Lukas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.