suche jemanden der mir bei meinen problem etwas auf die sprünge helfen
könnte.
derjenige sollte sich im httpserv projekt etwas auskennen.
dort ist eine baud von 115200 eingestellt und ich sollte sie halbieren
das geht über u2x, den auf 0 setzten. dfas ist mir klar nur ich lese
mich durch sämtliche dokus durch und finde den übergang zu meinem
projekt nicht.
es ist egal wo und wie ich die werte verändere sie haben keine
auswirkung oder sie werden nicht ausgeführt. ich bräuchte da eventuel
eine erklärung warum nicht oder wo ich da am besten ansetzte.
keine anleitung wie es gemacht wird nur eine hilfestellung!!
dbaur
Habe mir jetzt die Sourcen von Arthernet angesehen.
Die Einstellung der Baudrate ist über die Bibliotheksfunktion _ioctl()
gekapselt und die direkte Manipulation der UART-Register bringt dir
nichts.
httpserv.c (bzw. Originalversion httpserv.c__)
1
intmain(void)
2
{
3
// Definieren der Wunschbaudrate
4
u_longbaud=57600;// bzw. 115200; in httpserv.c__
5
u_chari;
6
7
/*
8
* Initialize the uart device.
9
*/
10
#if defined(__AVR__) || defined(WOLF)
11
NutRegisterDevice(&devDebug0,0,0);
12
freopen("uart0","w",stdout);
13
#else
14
NutRegisterDevice(&devDebug2,0,0);
15
freopen("sci2dbg","w",stdout);
16
#endif
17
18
// Setzen der Wunschbaudrate
19
_ioctl(_fileno(stdout),UART_SETSPEED,&baud);
20
...
D.h. in der modifizierten Source ist die Baudrate bereits auf 57600
halbiert. Du brauchst die Source bloss noch so zu übernehmen.
Allerdings musst du im Hinterkopf haben, dass aus dem angegebenen
Wunschwert und der Taktrate die Werte für die Baudratenregister der UART
berechnet werden.
Je nach Taktrate deines µC können dabei Werte herauskommen die einen
mehr oder minder grossen Baudratenfehler besitzen.
Es kann sich lohnen einen Quarz mit "krummen" Frequenzen zu benutzen,
bei dem Baudraten mit möglichst geringem Fehler möglich sind - einen
sog. Baudratenquarz.
Welche Kombinationen von Baudrate/Taktrate gut geeignet sind, steht
typischerweise im µC Datenblatt/Manual z.B. in den Tabellen "Examples of
Baudrate Setting"
RE: stefan
hab das übernommen:
nur beim builden mekert er mir:
!E F:\nut\app\httpd\httpserv.c(326): undeclared identifier `devDebug2'
!E F:\nut\app\httpd\httpserv.c(326): type error in argument 1 to
`NutRegisterDevice'; found `pointer to int' expected `pointer to struct
_NUTDEVICE'
F:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1
kann ich aus dem 'devdebug2' auch 'devdebug1' machen?
>kann ich aus dem 'devdebug2' auch 'devdebug1' machen?
Verstehst du eigentlich, was du da tust?
Wenn ich mir deine anderen Threads ansehe, dachte ich bisher eigentlich
du bist ~12 Jahre alt, die Prüfung zum Techniker überrascht mich dann
doch etwas.
Du hast vermutlich (sehe deine Sourcezeile um 326 nicht) nicht die
richtigen Defines gesetzt.
Der devdebug2 Fall ist in meiner Source aktiv, wenn _AVR_ und WOLF
nicht definiert sind.
devdebug2 wäre für ein UART2, ich kenne jedoch nur AVR mit UART0 und
max. UART1.
Du kannst sicher devdebug2 oder devdebug0 in devdebug1 ändern. Dann
würde stdout auf UART1 kommen. Setzt voraus, dass dein AVR UART1 hat.
Ich würde aber zuerst dem Problem nachgehen, wieso in deiner
Entwicklungsumgebung der Sourceteil übersetzt wird, der nicht für AVR
angepasst ist.
Ja okay, nachfragen ist natürlich immer nicht schlecht, aber ich denke
ich bin nicht der einzige der verwundert ist, dass du SO viel fragen
musst. War dafür nicht die Zeit deiner Weiterbildung gedacht? Habt ihr
da denn überhaupt nichts mit µC Programmierung gemacht? Dir scheinen
einfach sehr viele Grundlagen zu fehlen.
nein speziell µc haben wir nichts gemacht. und nur die wichtigsten
grundlagen in c haben wir durchgemacht.
ich weis das c nicht ganz mein fall ist. dafür kann ich allerdings nicht
viel. und das projekt muss gemacht werden. ob ich das kann oder nicht.
und das ich es mit fragen formulieren auch nicht wirklich drauf hab kann
ja jeden sehen. hab halt nicht die weisheit gefressen so wie manche das
von jemandem als grungvorraussetzung halten.
dbaur
baur wrote:
> nein speziell µc haben wir nichts gemacht. und nur die wichtigsten> grundlagen in c haben wir durchgemacht.>> ich weis das c nicht ganz mein fall ist. dafür kann ich allerdings nicht> viel. und das projekt muss gemacht werden. ob ich das kann oder nicht.>> und das ich es mit fragen formulieren auch nicht wirklich drauf hab kann> ja jeden sehen. hab halt nicht die weisheit gefressen so wie manche das> von jemandem als grungvorraussetzung halten.
Niemand verlangt hier das man die Weisheit mit Löffeln
gefressen hat.
Wenn allerdings eine Abschlussarbeit das Herstellen eines
Aluteils beinhaltet und dann kommt die Frage wie rum man
denn die Feile zu halten habe, dann ist das etwas befremdlich.
Es geht wirklich nicht um Weisheit! Entschuldige, wenn ich dir zu nahe
trete, aber deine Fragestellung ist größtenteils unter aller Sau! Wenn
du dir dieses Problem selbst bewusst bist, musst du dich umso mehr
bemühen die Fragen vernünftig zu stellen und dich nicht einfach damit
abfinden, dass du es nicht kannst, und gekränkt sein, wenn jemand das
Thema anspricht.
Du musst Fragen so stellen, dass ein "Unbeteiligter" dir nur durch lesen
der Frage eine Antwort geben kann.
Das heißt, es müssen ALLE relevanten Informationen darin enthalten sein
und du selbst musst GANZ genau wissen, was du erfragen möchtest und zwar
nicht Marke: "Das geht alles nicht, was mache ich falsch?".
Als Techniker ERWARTET man einfach von dir solche grundlegenden
Fertigkeiten in deinem späteren Arbeitsleben, du tust also gut daran,
dich in diesem Gebiet DEUTLICH zu verbessern!
Naja, da sich der inhaltliche Teil mit dem Ausstieg des Ursprungsposters
ja erledigt hat, kann man ja mal ein wenig OT werden.
Ich lese hier zwar nur passiv mit, aber mir ist in letzter Zeit auch
immer mehr aufgefallen, dass viele Fragen zu irgendwelchen
Abschlussarbeiten/Diplomarbeite/... kommen. Die Frager haben meist gar
keine oder kaum vorhandene Kenntnisse zu den verwendeten
Mikrocontrollern oder den Problemen drum herum.
Ich verstehe das nicht, ist denn nicht deren Ausbildung davor(!) dafür
zuständig die Grundlagen zu lernen. Zumindest das Lesen eines
Datenblattes oder div. Webseiten sollte doch drin sein - und das hat
absolut nichts mit Weisheit fressen zu tun (finde ich!). Konkrete Fragen
stellen kann man dann immer noch.
Aber wer im Glashaus sitzt soll nicht mit Steinen werfen. Ich soll im
Rahmen meiner Tätigkeit (FH) demnächst auch ein paar Studies die
Grundlagen zur C-Programmierung am Beispiel eines kleinen Atmels
beibringen. Gar nicht so einfach.
Schönen Tag noch....