Hallo zusammen ich denke dass mein Quarz spinnt es ist ein 16 mhz, wie kann ich das rausfinden? habe ein Oszi zuhause... muss ich parallel zum quarz messen? wenn ja dann hab ich 30-50 Hz , kann das sein?
:
Verschoben durch Moderator
Klaus schrieb: > Hallo zusammen ich denke dass mein Quarz spinnt es ist ein 16 mhz, wie > kann ich das rausfinden? 16 Milliherz? Wow Warum denkst du das? > muss ich parallel zum quarz messen? wenn ja dann hab ich 30-50 Hz , kann > das sein? Eher nicht.
ich hab atmega32 der quarz ist ja an Xtal1 und 2 angeschlossen, habe die Fuses für frequenz dann auf 16 Mhz +64 ms .... gestellt jedoch spinnt mein LCD immernoch obwohl ich alles eingestellt habe auch in den lcd_routines... daher dachte ich vielleicht spinnt der quarz.
Klaus schrieb: > ich hab atmega32 der quarz ist ja an Xtal1 und 2 angeschlossen, habe die > Fuses für frequenz dann auf 16 Mhz +64 ms .... gestellt jedoch spinnt > mein LCD immernoch obwohl ich alles eingestellt habe auch in den > lcd_routines... > > daher dachte ich vielleicht spinnt der quarz. Wie wäre es, wenn du erst mal ausmessen würdest, ob dein Quarz aktiv ist. Wenn sich herausstellt, dass dein Quarz tatsächlich vom µC benutzt wird, dann noch mal die Konfiguration des LCD überprüfen. Auch die Verkabelung des LCD nochmal überprüfen. Ist da nichts zu sehen, dann kann man mal über einen Softwarefehler nachdenken. Und erst dann fällt der Verdacht möglicherweise auf den Quarz
Hast du an deinem Mega32 an irgendeinem Pin eine LED angeschlossen? (Wenn ja, wo?)
1 | #define F_CPU 16000000UL
|
2 | |
3 | #include <avr/io.h> |
4 | #include <utils/delay.h> |
5 | |
6 | #define LED_DDR DDRx
|
7 | #define LED_PORT PORTx
|
8 | #define LED_PIN PBx
|
9 | |
10 | int main() |
11 | {
|
12 | LED_DDR |= (1<<LED_PIN); |
13 | |
14 | while( 1 ) { |
15 | LED_PORT |= (1<<LED_PIN); |
16 | _delay_ms( 500 ); |
17 | LED_PORT &= ~(1<<LED_PIN); |
18 | _delay_ms( 500 ); |
19 | }
|
20 | }
|
setze die richtigen Werte bei den #define ein. Wenn dein µC mit 16Mhz arbeitet, dann ist die LED 1/2 Sekunde ein und 1/2 Sekunde aus. Ist der Quarz nicht in Aktion (und der µC läuft mit 1Mhz), dann ist die LED 8 Sekunden ein und 8 Sekunden aus. Blinkt gar nichts, dann hast du den µC verfused. Nach 30 Sekunden weißt du was Sache ist.
das mit der Zeit funktioniert, habe auf dem LCD alle 0,5 sec was aufblinken lassen und das geht auch wunderbar, jedoch hab ich in der 1. und 2. Zeile des LCD bis Zeichen 8 bestimmt die Hälfte weniger an Kontrast und zudem ist in diesem Bereich sehr häufige Dreher der Zahlen/Buchstaben usw zu erkennen. Habe alle Verbindungen ohmisch durchgemessen usw. ist alles Wunderbar... Kann es sein das es am Display liegen kann obwohl das neu ist. LCD 4 x 20 Zeichen, hatte deswegen schonmal ein Thread aufgemacht.
Wenn der Kontrast schon unterschiedlich zum rest des Displays ist, ist am Display was nicht ok. Der Kontrast an sich ist über den entsprechenden Pin mit Spannungsteiler korrekt eingestellt? Kannst du an anderen stellen des LCD was korrekt ausgeben? Gruß Fabian
Klaus schrieb: > aufblinken lassen und das geht auch wunderbar, jedoch hab ich in der 1. > und 2. Zeile des LCD bis Zeichen 8 bestimmt die Hälfte weniger an > Kontrast und zudem ist in diesem Bereich sehr häufige Dreher der > Zahlen/Buchstaben usw zu erkennen. Das hört sich aber schon ganz anders an, als noch ein paar Postings weiter oben :-) > Habe alle Verbindungen ohmisch durchgemessen usw. ist alles Wunderbar... gut. Hätt mich auch gewundert. Wenn du einen Wackelkontakt hättest, würde das Display sporadisch komplett ausfallen und nicht mehr reagieren. > Kann es sein das es am Display liegen kann obwohl das neu ist. Möglich. Aber gehn wir nicht vom schlimmsten aus. Was machst du mit dem LCD? Was gibst du aus? Wenn du nur schnell genug immer wieder das LCD löscht (oder einzelne Teile davon) und neu beschreibst, sinkt auch der Kontrast und man kann nichts mehr lesen. Allerdings, wenn du Dreher drinnen hast, kann es auch sein, dass dein Timing ein bischen zu knapp ist. Also: LCD Ausgaberoutinen durchforsten und bei allen Wartezeiten ein wenig höher gehen.
Hallo @Fabian Ja habe ein 10k poti an PIN 5 des LCD hengen, wenn ich daran drehen wird es heller und dunkler. jedoch wie schon erwähnt in dem kleinen Bereich ist die Helligkeit der buchstaben einfach viel dunkler. @Karl Die änderung der Zeit bringt so wie ich das beurteilen kann ein wenig erfolg, habe aber die Zeit von z.B. 1 auf 10 anheben müssen, mit dieser Zeit macht er jetz weniger fehler aber sind immernoch vorhanden besonders nach dem aufspielen des Programms dann muss ich nochmal aufspielen oder reset dann gehts. Jedoch ist der kontrast immer noch soo dunkel, und das komische ist das es nur in diesem dunklen bereich diese Fehler auftreten.
Klaus schrieb:
> muss ich parallel zum quarz messen?
Eher an XTAL2, allerdings erhöhst du durch die Eingangskapazität
des Tastkopfes die Last für den Quarz geringfügig. Mit einem 10:1-
Tastkopf sollte das aber trotzdem noch klappen.
Ohne Rückwirkung auf den Quarz kann man die Frequenz messen, indem
man einen Timer im CTC-Modus programmiert, das entsprechende OCRx-
Register auf 0 setzt und den OCx-Pin auf "toggle on compare match"
stellt (muss natürlich ein Ausgang sein). Dann misst man an diesem
Pin f_CPU/2.
...oder ein kleines Programm, das einfach nur abwechselnd einen Port setzt und zurücksetzt. An diesen dann das Oszi klemmen. Wackelt´s am Port, dann wackelt auch der Quarz. Du weisst dann nichts über die Frequenz, aber du weisst, dass er oszilliert.
> muss ich parallel zum quarz messen? wenn ja dann hab ich 30-50 Hz , kann
das sein?
Ich möchte wetten, dass die CKOPT Fuse nicht gesetzt ist.....
Sind denn die 20-30pF Anschwingkondensatoren vorhanden? Ohne wäre das reine Glücksache.
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.