Lichtsteuerung vorstellung

  • Hallo Florian,

    kannst du den Minimalcode (also zum Beispiel nur die Config-Zeile im Code etc.), bei welchem du noch den Fehler bekommst, in der Gänze posten?

    Weil wenn ich in meiner BASCOM-Installation nur die vier Config Timer...-Zeilen (inkl. Config Timer5 ...) im Code habe, dann compiliert er ohne Fehler durch:


    Allerdings war heute Morgen gerade ein neues Update via UpdateWizard hängig (wahrscheinlich wegen der TIMSK-Sache), was ich dann auch grad durchgeführt habe. Vielleicht wurde ja auch noch was anderes behoben.

    Gruss
    Neni

  • @Samatronta05: Nein der Fehler kommt auch wenn ich nur Config Timer5 = Pwm hinschreibe.
    Snowfly: Habe ich gleich als erstes gemacht für den 2560 zu kompilieren. Aber da kommt der Fehler ebenfalls.
    synvox:

    Also selbst wenn ich alles rausstreiche bis auf die Minimalconfiguration, dann kommt der Fehler immernoch.

    Kannst du mir mal deine m1280.def Datei schicken? Dann probier ich es mal damit
    PN mit meiner Mail ist unterwegs

  • Hallo Florian,

    ich habe dir mal 'mein' m1280def.dat (umbenannt nach m1280def.txt zum Hochladen; du must es also wieder nach .dat umbenennen, damit du es nutzen kannst) hochgeladen:
    m1280def.txt

    Allerdings glaube ich ehrlich gesagt nicht, dass dir das weiter hilft, denn das dat-File wurde zuletzt am 22.7.2010 geändert, und auch der TIMSK-Eintrag ist nicht drin, was sich allerdings beim Minimal-Config-Code nicht auswirkt, da dabei keine Interrupts freigegeben werden müssen (somit kein Zugriff auf TIMSK).

    Dein Fehler mit TCC53A (wobei es sich eben um einen Schreibfehler im BASCOM-Compiler-Code handelt; es muss ja TCCR5A oder TCCR3A heissen) ist meiner Meinung nach auf eine veraltete BASCOM-Version zurückzuführen (ich meine, mich wage an so eine Fehlermeldung im MCSelec-Forum erinnern zu können), welcher mittlerweile in den neuen Versionen schon längst korrigiert wurde.

    Falls du dir dennoch ganz sicher bist, die neueste Version von BASCOM zu haben (die ist übrigens 2.0.4.0), würde ich dir vorschlagen, einen clean install von BASCOM (neueste Version) zu versuchen. Es könnte nämlich sein, dass irgendein Update mal nicht vollständig durchgelaufen ist und deine Installation irgendwie korrumpiert hat.

    Gruss
    Neni

  • jetzt bin ich verwirrt! mein bascom mit aktuellen updates zeigt mir 1.12.4.0


    Hallo tauruz,

    dann wirst du wahrscheinlich auch ein Problem haben. Denn meines Wissens hat es eine Version 1.12.4.0 nie gegeben. Nach 1.12.0.0 kam direkt 2.0.0.0, dann 2.0.1.0 etc. bis 2.0.4.0.

    Geh mal auf der MCSELEC-Seite ins Registration/Update-Interface (einloggen) und lade dir das aktuelle LIC-File und am Besten auch noch gleich den aktuellen Update Wizard (1.0.0.19) runter. Probiere dann mit diesem, ein Update zu machen. Bei veralteten UpdateWizards kann es eben auch zu Problemen beim Update kommen. Normalerweise werden die zwar auch automatisch upgedatet, sobald ne neue Version verfügbar ist, aber naja, es kann ja vielleicht auch mal schief gehen. Bei deiner BASCOM-Versionsnummer (1.12.4.0) scheint es eben irgendwie auch ein unvollständiges Update gegeben zu haben. Falls LIC-File und neuester UpdateWiz nix bringen, dann am Besten auch gleich einen clean install mit der neuesten VollVersion (auch via Registration/Update downloadbar) machen.

    Übrigens musste ich beim Wechsel 1.x auf 2.x nichts besonderes unternehmen. Das ist bei mir wie immer problemlos auch via UpdateWiz abgelaufen.

    Gruss
    Neni

  • Danke synvox fürs hochladen aber daran lags wie schon vermutet nicht. Hab mal Bascom neu aufgesetzt und jetzt läufts.

    Naja also hab jeden Tag immer ein kleines Stückchen am Code weitergebastelt und wieder umgeändert usw. Jetzt stehe ich vor einem knapp 2300 Zeilen langen, bald 30 KB großen Code, blicke selber fast nicht mehr durch und hoffe nur noch, dass es nachher auf dem Controller/Gerät auch läuft. Der muss allerdings erst zusammengebaut werden und über 100 Pins per Hand zu verdrahten kann lange dauern. Da werd ich noch 1,2 Wochenenden mit beschäftigt sein.

    Da ich auch RGB Fading mit eingefügt habe, müssen die Taster und vorallem die Fernbedienungsparameter nun über eine ISR abgerufen werden. Die Taster kann ich schön abfragen nur mit dem RC5 will es einfach nicht funktionieren.

    So habe ich den Code in der Main Loop stehen:

    Kopiere ich das ganze in die ISR funktioniert es nicht mehr.

  • Ich hab da auch mal eine Weile dran rumgebastelt, RC5-Empfang in einer ISR zu machen. Insb. deswegen, weil ich den AVR mit einem Interrupt aus dem Powerdown wecken wollte. Leider weiss ich nichtmehr wie ich das damals gelöst hatte und progge inzwischen ausschliesslich in C. Ich meine aber Benkly hatte da auch eine Lösung, frage ihn doch mal nett ob er dir weiterhelfen kann.

  • Kopiere ich das ganze in die ISR funktioniert es nicht mehr.

    Ich hab es zwar selbst nicht versucht, aber wie springst du denn in die ISR?
    IMHO musst du den Empfängerpin als IRQ-Eingang konfigurieren, dann beim Sprung in die ISR erstmal den Interrupt wieder ausschalten, Getrc5 laufen lassen
    dann vor dem verlassen der ISR das Interrupt pending Flag löschen und den Interrupt wieder einschalten.

  • Es geht mal wieder ein bisschen weiter. Das Layout für die Platine habe ich schon vor Wochen erstellt und danach wurde die Platine dann auch bestückt. Allerdings eine Lochrasterplatine und damit ich nicht beim Bestücken die falschen Löcher erwisch, hab ich kurzerhand versucht, mit der Toner-Transfermethode einen Bestückungsdruck aufzubringen. Das hat mehr oder weniger gut geklapt. Aber zumindest hat der Druck das Bestücken überstanden.

    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_4436.jpg] [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_4437.jpg]

    Der µProzessor: Ein Atmega 1280 in SMD (TGFP 100). Er wird später mit 8 mHz betrieben. Nicht gerade einfach den auf die Platine zu löten ohne spezielles SMD Werkzeug und das ist auch der Fehler, den ich nachher erläutern werde.
    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_4442.jpg] [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_4446.jpg]

    Platine fertig bestückt:
    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_479x359_images_steuerbox_version2_IMG_4447.jpg]

    Ein „paar“ Verbindungen herstellen:
    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_479x359_images_steuerbox_version2_IMG_4448.jpg]

    IR Empfangsmodul:
    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_479x359_images_steuerbox_version2_IMG_4449.jpg]

    Platine fertig zum Einbau:
    [Blockierte Grafik: http://www.heringshome.de/images/imagecache/0_479x359_images_steuerbox_version2_IMG_4461.jpg]

    Die Freude könnte so endlos sein wenn es denn funktionieren würde. Das Programm wurde schon vor einiger Zeit angefangen und Tagtäglich perfektioniert. Ich könnte es schon fast funktionsüberladen nennen. Aber was packt man nicht alles rein wenn man 128 kB Speicherplatz hat. Aber am Programm liegt es nicht (zumindest noch nicht), sondern daran, dass ich nicht mal das Programm auf den µC bekomme. Per ISP kriege ich keine Verbindung her. Später nach dem ich bei Ponyprog, der RS232 Schnittstelle und dem Atmel Evaluations Board genauer nachgeforscht habe und sich herausgestellt hat, dass es an diesen Komponenten nicht liegt habe ich mir den Prozessor näher angeschaut. Mit einer Lupe! Und da ist mir dann doch noch eine Lötbrücke aufgefallen. Also habe ich diese entfernt aber er lässt sich immer noch nicht Programmieren. Weitere Lötbrücken konnte ich keine Finden und alle Verbindungen habe ich durchgemessen und sind in Ordnung. Dann muss ich wohl doch einsehen, dass der µC nicht mehr funktioniert. Sehr schade. Also muss ich erst mal wieder einen neuen Prozessor heranschaffen. Bis dahin also :(

  • dgoersch: Ja das habe ich direkt an den Beinchen. Habe auch alles nochmal genau nachverfolgt ob auch wirklich alles richtig angeschlossen ist. Aber da ist alles in Ordnung. Und am PC und am Evaluationsboard liegts nicht, weil mit dem kann ich immernoch ganz normal meine Atmegas flashen (per ISP). Naja mal sehn wann ich wieder bei Reichelt bestelle. Ich sollte doch immer 2 Stück kaufen weil bei mir geht anscheind jeder erste Versuch in die Hose :S. Je teurer die µC werden desto ärgerlicher wirds aber.

  • Weißt du vielleicht noch, welche Pins das waren, wo du eine Lötstelle hattest? Wenns nicht gerade die Stromversorgung ist, dann müsste der µC das eigentlich doch überleben. Ich würd mal im Datenblatt schauen, welche Pins das waren.
    Hast du vielleicht auch mal probiert ihn mit Bascom auszulesen? Vielleicht liegts ja auch an PonyProg. Eigentlich sinnlos, aber ein Versuch ist es wert.

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

  • Die Frage ist, zwischen welchen Beinchen die Brücke war. Wenn du beispielsweise nur 2 I/O Pins zusammengeschlossen hast, dürfte der Controller nicht hinüber sein. Vielleicht stimmt einfach etwas mit der Schaltung oder Verkabelung nicht. Nimm doch mal einen billigen Controller, ein Steckbrett (wenn du sowas hast) und mehrere Kabel. Dann steckst du die Kabel an den passenden Stellen in die Buchsen, in die eigentlich der andere Controller gesteckt wird. Und dann diese Kabel mit Hilfe eines Steckbrettes mit dem billigen Controller verbinden. Bekommst du da auch kein Signal, ist dein Board fehlerhaft. Kannst du den Controller flashen, gibts ein Problem mit dem anderen Controller.

    Edit: Mhh k, ich sehe schon. Zu lange geschrieben bzw. mitten drin ablenken lassen. Dann wiederholt man quasi nur das vom Vorgänger ...

  • Hast du das hier vielleicht übersehn?

    Zitat

    Even though the SPI Programming interface re-uses the SPI I/O module, there is one important
    difference: The MOSI/MISO pins that are mapped to PB2 and PB3 in the SPI I/O module are not
    used in the Programming interface. Instead, PE0 and PE1 are used for data in SPI Programming
    mode as shown in Table 127.


    Seite 300 und folgende könnten dann interessant für dich sein.

  • Nach ein paar Monaten geht es bei diesem Projekt wieder weiter. In der Zwischenzeit habe ich mich mit einem Atmega 16 als Ersatz zufrieden gegeben:

    [Blockierte Grafik: http://www.hering-homeprojects.de/images/imagecache/0_480x360_images_steuerbox_version2_IMG_5238.jpg]

    Aber jetzt neuer Prozessor aufgelötet und wieder versucht das Programm zu übertragen. Diesmal klappt es, aber das Programm läuft nicht. Der Fehler ist auch nicht so schnell gefunden unter 3000 Programmzeilen. Die ganzen Probleme die ich gefunden habe, werde ich jetzt aber nicht aufzählen. Es waren einfach zu viele ;) Stattdessen zeige ich das Endergebnis in einem kleinen Video . (Die Synchronisation von Webcam und normaler Kamer ist ein bisschen Versetzt)
    Kleiner Tipp: In groß Anschauen, damit man auch sieht was auf dem Display angezeigt wird. Video in HD aufgenommen also wer eine entsprechende Internetverbindung hat kann sich das in HD anschauen ;)

    kYOSe_zOdjc

    Noch ein paar Bilder der fertigen Box:

    [Blockierte Grafik: http://www.hering-homeprojects.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_5256.jpg] [Blockierte Grafik: http://www.hering-homeprojects.de/images/imagecache/0_320x240_images_steuerbox_version2_IMG_5257.jpg]

    Hier werden ja immer öfters Universalplatinen entwickelt. Aber meist nur auf Basis „kleiner“ Prozessoren. Gäbe es denn Abnehmer für eine Universalplatine mit „großem“ Prozessor wie dem Atmega 1280? Ich würde gerne so eine Platine wie das vom Arduino Mega 1280 herstellen lassen mit Grundbeschaltung und herausgeführten Anschlüssen. Evtl. auch mit USB Anschluss . Oder mit zusätzlicher Beschaltung oder oder oder. Wer Ideen hat immer her damit.