Forum: Mikrocontroller und Digitale Elektronik erstes AVR-Schaltung


von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Lui (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

Die LCD Ansteuerung ist nicht erkennbar (lesbar)

Mir fehlt der ISP Anschluss

Ansonsten sieht der Teil links vom µC gut aus.

von Stefan B. (stefan) Benutzerseite


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.

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Karl H. (kbuchegg)


Lesenswert?

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

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

von Stefan B. (stefan) Benutzerseite


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.

von Lukas B. (lukas-1992) Benutzerseite


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.

von Karl H. (kbuchegg)


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.

von Jörn P. (jonnyp)


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.

von Lukas B. (lukas-1992) Benutzerseite


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

von Karl H. (kbuchegg)


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.

von Lukas B. (lukas-1992) Benutzerseite


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.

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

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

von Jörg D. (jjoe)


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

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

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

von Karl H. (kbuchegg)


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.

von Karl H. (kbuchegg)


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.

von David (Gast)


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?

von Lukas B. (lukas-1992) Benutzerseite


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

von Jörn P. (jonnyp)


Lesenswert?

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

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Karl H. (kbuchegg)


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)

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Lukas B. (lukas-1992) Benutzerseite


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-Tutorial/LCD-Ansteuerung.

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.
1
// Pinbelegung für das LCD, an verwendete Pins anpassen
2
 
3
#define LCD_PORT      PORTD
4
#define LCD_DDR       DDRD
5
#define LCD_RS        PD2
6
#define LCD_EN        PD3
7
// DB4 bis DB7 des LCD sind mit PD0 bis PD3 des AVR verbunden

Kann uns da jemand weiterhelfen??

Grüße
Lukas

von Philipp Karbach (Gast)


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!

von Philipp Karbach (Gast)


Lesenswert?


von Stefan B. (stefan) Benutzerseite


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

von Lukas B. (lukas-1992) Benutzerseite


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

von Soenio (Gast)


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.

von Lukas B. (lukas-1992) Benutzerseite


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...

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

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

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

keiner ne Idee oder einen Vorschlag??

von netdieter (Gast)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Der Inhalt deiner HEX-Datei von 11:07 Uhr ist nicht sinnvoll:
1
:020000020000FC
2
:100000000000FF01FFFF00F8000000000000FFFFFC
3
:10001000FFFF0000000000003F00FFFF00FF0000A6
4
:1000200000000000FF00FFFF00FF000000000000D4
5
:10003000FFFFFFFF0000000000000000FFFFFFFFC8
6
...

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.php&katID=16

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

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

Hallo,
ich verwenden folgenden Programmer:
http://shop.myavr.de/index.php?sp=article.sp.php&artID=42

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

von Stefan B. (stefan) Benutzerseite


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/DOC1021.PDF

myAVR mySmartUSB MK2
Version 2.11
Technische Beschreibung
http://www.myavr.info/download/produkte/mysmartusb_mk2/techb_mysmartusb-mk2_de_en.pdf

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.

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

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

Grüße Lukas

von Lukas B. (lukas-1992) Benutzerseite


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:
1
  int voltage = 1.20;
2
   int current = 9980;
3
  int power = 1.35;
4
5
  char zeile_1[20];
6
  char zeile_2;
7
8
  char zeile_1_temp1[8] = "Strom: ";  // Speicher für Strom
9
  char zeile_1_temp2[9]; // Speicher für Strom wert
10
  char zeile_1_temp3[2] = "mA "; // Speicher für Strom einheit
11
12
...
13
14
  
15
    sprintf( zeile_1_temp2, "%d", current );// Convertiert alles Mögliche ium siehe:
16
                  //http://www.mikrocontroller.net/articles/FAQ#sprintf.28.29
17
                  // Tabelle unten!
18
                  // !!!!!!!!!!FUNKTIONIERT NICHT MIT DER TABELLE WARUM??!!!!!!!!!!!!!!
19
20
21
    set_cursor(0,1);      //Setzt den Coursor auf die Erste Zeile
22
    strcpy(zeile_1, zeile_1_temp1);// Setzt den String Zusammen 
23
    strcat(zeile_1, zeile_1_temp2);// aus TEMP1, TEMP2, TEMP3
24
    strcat(zeile_1, zeile_1_temp3);// und speichert in zeile_1
25
    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
...
1
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

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
Noch kein Account? Hier anmelden.