Servus allerseits Bis heute Mittag funktionierte alles so wie es sollte. Dann habe ich die Boards (das Geraet besteht aus 3 Boards mit 2 x STM32F103 und 1x STM32F407) in das Gehaeuse montiert, eingeschaltet ... LCD blieb schwarz, waehrend die Slave-Boards mit der Led munter ihr i-am-alive Signal durchgaben. Alle Stecker ausgesteckt, Debugger an das Mainboard angeschlossen, und nach mehreren Stunden try-and-error stellte ich fest, dass alles, aber auch wirklich alles funktionierte: nur nicht die Timer. Dann bin ich mit den Backups mehrere Tage zurück, aber auch dort: alles funktioniert, nur die Timer nicht. Ich verwende SysTick und TIM2, die jetzt, weiss der Teufel wieso, nicht mehr funktionieren. Frage: kann sowas sein, dass alles funktioniert, nur nicht die Timer?
Scheint tatsaechlich möglich zu sein. Habe ein Discovery407 mit dem Code gefüttert: die Timer liefen problemlos.
Mehmet Kendi schrieb: > Scheint tatsaechlich möglich zu sein. Habe ein Discovery407 mit > dem Code > gefüttert: die Timer liefen problemlos. Nein sag bloss ... ein Hersteller verkauft mehrere hunderttausende ICs und hat Masekenkosten von mehreren Millionen und dann funktioniert TIM2 nicht ... da könnte man ja kaum auf den Gedanken kommen, dass der Hobbybastler es vielleicht einfach nicht drauf hat
132 schrieb: > da könnte man ja kaum auf den Gedanken kommen, dass der > Hobbybastler es vielleicht einfach nicht drauf hat Die Tage hatte ich auch ein sehr ernstes Problem mit F407 auf einem Disco-Board. Hier habe ich garnicht erst nach einer Lösung gefragt, weil ich genau diese dummen Antworten vermutet hatte. Ich weiß nicht, was Mehmet so treibt, aber als Bastler habe ich ihn nicht erlebt.
Nochmal zu Deinem eigentlichen Problem. Ich würde im Debugger die betreffenden Registerinhalte kontrollieren und notfalls darin "herumstochern", um die Timer manuell anzuwerfen. Typische Fehlerquellen sind bei mir, im Editor mal eine Zeile zuviel zu löschen oder als Kommentar zu markieren. Übel kann es auch sein, wenn man mit copy & paste 'neuen' Code erstellt, aber nicht alle Registernamen/-nummern entsprechend ändert.
Wie wirkt sich das aus, dass die Timer nicht mehr funktionieren? Siehst du tatsächlich mit dem Debugger, dass die Timer nicht laufen oder werden nur entsprechende Pins o.Ä. nicht gesetzt? Nachdem du schreibst, dass es nach dem Einbau in ein Gehäuse nichtmehr funktioniert, hört sich das eher nach Hardware-Problem an.
Wie ich diese Momente hasse: mit gesenktem Kopf vor das Publikum zu treten und "mea culpa" zu murmeln und hoffen, dass keiner "ich habe Dich nicht verstanden!" ruft. Also, das war so. In der Entwicklungs-Phase arbeite ich normalerweise mit dem SRAM und nur hin und wieder brenne ich das Programm in den Flash, um auch dies getestet zu haben. Und bevor ich das Geraet dem Kunde übergebe, aktiviere ich die Protection. Soweit so gut. Donnerstag Abend waren alle Test abgeschlossen. Am Freitag nochmals alle Test durchgehechelt: keine Probleme. Alle Boards eingebaut, die Protection gesetzt, aus dem Menu heraus das Ganze formatiert ... und da kamen Anrufe, die ich nicht abwimmeln konnte und war mehrere Stunden mit was anderem beschaeftigt. Als ich dann nach dem Mittagessen das Geraet eingeschaltet hatte und nichts mehr lief, geriet ich in Panik, da der Kunde bereits benachrigt worden war. Also wurde der Kunde nochmals benachrichtig und erst am Abend um 20 Uhr fiel bei mir der Groschen: durch das Formatieren wurde eine Variable nicht mehr initialisiert, weshalb sich das Geraet aufhaengte. Als ich den Debugger anschloss, arbeitete ich in alter Gewohnheit im SRAM: aber wegen der Protection waren dem Debugger die Haende zum Teil gebunden. Nochmals: tut mir echt leid wegen diesem falschen Alarm. Und beiliegend das Bild des Problem-Kindes.
Die Aussage "Timer funktionieren nicht" war übrigens falsch. Bei Kontrolle der Register konnte ich zaehneknirschend, haareraufend und fingernaegelbeissend sehen, wie die Counter hochgezaehlt wurden: nur der Interrupt wurde nicht ausgeführt.
Mehmet Kendi schrieb: > Nochmals: tut mir echt leid wegen diesem falschen Alarm. Muß es nicht! So ist doch das Entwicklerleben, und es ist gut zu hören, dass es Anderen nicht anders geht. Wenn dann irgendwelche Spezialisten auftauchen, die sagen: "Alles easy", dann kann man nur noch müde lächeln. Zwischendurch wollte ich Dir noch den Rat geben, mal ein-zwei Nächte über das Problem zu schlafen; das bringt es nämlich meist auch.
m.n. schrieb: > Zwischendurch wollte ich Dir noch den Rat geben, mal ein-zwei Nächte > über das Problem zu schlafen; das bringt es nämlich meist auch. Diese Erfahrung habe ich auch schon mehrfach gemacht. Es ist erstaunlich, wie viel es bringt mal "über ein Problem zu schlafen" :-D
m.n. schrieb: > 132 schrieb: >> da könnte man ja kaum auf den Gedanken kommen, dass der >> Hobbybastler es vielleicht einfach nicht drauf hat > > Die Tage hatte ich auch ein sehr ernstes Problem mit F407 auf einem > Disco-Board. Hier habe ich garnicht erst nach einer Lösung gefragt, weil > ich genau diese dummen Antworten vermutet hatte. > > Ich weiß nicht, was Mehmet so treibt, aber als Bastler habe ich ihn > nicht erlebt. Ich habe jetzt fast 20 Jahre Berufserfahrung im Embedded-Bereich und war vorher 10 Jahre in der HF-Entwicklung und ich kann dir versichern das in 99,9% nicht der Hersteller unbekannte Bugs einbaut sondern der Programmierer irgendwas verhaut. Egal ob er es nicht kann, er etwas übersieht, was auch immer - in extrem seltenen Fällen haben die Compiler oder gar das Silicon den Bug. Ich habe auch schon Bugs bei Compilern gehabt, aber das sind dann nagelneue Compiler für Silicon Rev. A oder sogar früher. Die meisten vermeintlich Silicon oder Compiler Fehler entstehen aus: 1. mangelhaften Programmierkenntnissen oder 2. mangelndem Wissen über den Controller. (Reference Manual, DB oder Errata nicht ganz gelesen und verstanden). Jeder kann einfach Beispielprojekte laden und dort ein bisschen rumspielen. Dann baut man alles selbst von Vorne auf und scheitert. Man hat dann meist einfach das Gesamtsystem nicht verstanden. Wie sollte man auch. Was Mehmet so treibt weiß ich auch nicht. Nur ein Professioneller Elektrotechniker ist er mit Sicherheit nicht. Das ist auch nicht schlimm. Aber wie soll man mit diesem Gequatsche aus dem Opening Post anfangen? Nicht mal Code ist angehängt ... Das ist amateurhaft. Außerdem sucht man Fehler grundsätzlich immer zuerst bei sich selbst. Es ist sehr sehr selten, dass die Hersteller weniger Ahnung haben als ein Anwender (sei es nun prof. oder amateurhaft). Und niemand würde sich trauen einen Controller zu verkaufen bei dem ein solch heftiger Bug drin ist. Zumindest nicht an die breite Masse. Wenn es von einem DSP nur 2000Stück gibt dann ist das was anderes als bei einem solchen 0815 Controller. Den hat doch jeder zu Hause liegen. Der TO. hat sich doch noch nicht mal ein Tutorial angeschaut ...
132 schrieb: > Der TO. hat sich doch noch nicht mal ein Tutorial angeschaut ... Das habe ich auch noch nie. Mit Deinen 20 Jahren Berufserfahrung bist Du ja noch ein junger Spunt. Komm einfach mal wieder runter!
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.