Microcontroller-Tutorial für Anfänger - Teil I - Grundlagen

  • Btw. ist der Speicher auf dem MC ausreichend für so viel code? Hab da keine Vorstellung.

    Wenn du nur die Demoversion von Bascom hast, ist eher die Frage, ob du mit den 4kB Codegröße auskommst, die Bascom damit erzeugen kann.
    (Das sollte aber auch reichen ;) )

  • für so kleine Programme reicht der Speicher gut aus... da braucht man sich dafür keine sorgen machen... Entshceidend ist auch was der Compiler aus dem Code macht... bzw welche Optimierungsstufe man einstellt... da kann man dann auch noch einiges Rausholen.. aber für solche kleinen Sachen brauchts das nicht...




    Der widerstand zwishcen Mosfet und Mc: Dieser ist dazu da um den Strom zu begrenzen. Ein Mosfet ist vergleichbar mit einem kleinen Kondensor, der beim einschalten aufgeladen werden muss... bei schnellen Schaltfrequenzen kann der Spitzenstrom schon auf über 1A hochschnellen. das kann dann so nen kelinen MC umbringen... dafür sollte man dann einen Transistor oder Mosfettreiber reinschalten. Der Widerstand hat den vorteil, dass er den MC schützt. allerdings werden dadurch auch die SChaltflanken verwaschen, wodurch die Verlustleistung am Mosfet steigt.

  • Hmm das ist machbar, Herr Nachbar...


    Allerdings bräuchten wir dann erstmal ne gute Quelle für günstige Empfänger.
    Fertige kosten so um die 10 EUR, aber wenns irgendwo landesweit billige Funkwecker bei LIDL gibt, dann kann man die auch ausschlachen - also das DCF Modul "rückgewinnen" - und das oft für 2,50 EUR...


    Aktuelle Preise:
    Reichelt: 13,30 EUR
    Pollin: 4,95 - sowohl blanke Module mit Antenne, als auch ein Wecker ;)
    Conrad: 10,21 EUR - sieht aus wie Osttechnik, aber ist u.U. um die Ecke zu haben!


    Vielleicht sollte man sich mal ne Menge von den Pollin-Modulen sichern, bevors ein anderer tut :-/

  • Huhu,


    trotz allem brauch ich nochmal eure Hilfe, ich hab jetzt mal versucht, meine lustigen LEDs über ein Interrupt zu steuern, aber das will mir nicht so gelingen. Wahrscheinlich habe ich noch irgendwo einen Fehler drin oder der Ansatz ist falsch?



    Das Script sollte PortB jeweils nach 7800 Interrupts (hier ca. 1sek) die LEDs ein- bzw. ausschalten.

  • Hmm sieht eigentlich richtig aus...
    Ich würde die Integer Variable vorher noch auf 0 stellen und die ISR kürzen, bzw. in den Mainloop legen!
    Teste es so mal...


  • Hmm, da tut sich einfach nichts. Muss ich den timer eventuell noch irgendwie aktivieren oder irgendwelche fusebits ändern? mein lauflicht mit den "waitms"-anweisungen funktioniert ja wunderbar, aber sobald ich das ^^ programm draufflashe bewegt sich nix mehr.

  • Sorry, hatte vorhin deinen Code noch nicht so genau angeschaut. Der hat einige Fehler bzw. 'Unschönheiten' drin. Die beiden wichtigsten Fehler sind: Erstens kannst du einem Byte-Register wie PortB keine Werte über 255 zuweisen, bzw. bei 256 ist es dann eintsprechend einfach 0, und zweitens musst du deine Interrupt-Routine NACH dem Do...Loop platzieren, sonst führt er die Anweisungen darin beim ersten Durchlauf vor der Endlosschleife eben aus, kommt dann zum "Return" (ohne ein entsprechendes Gosub oder Interrupt etc.) und verabschiedet sich ins Nirvana ;) .


    Folgender korrigierter Code müsste jetzt eigentlich funktionieren:



    Gruss
    Neni

  • Hey,
    schönes Tutorial. Ich wollt das nun auchmal probieren. Also AtTiny2313, Kabel, Widerstände etc besorgt, aber kein Evaluationsboard. Ich hab so probiert den AtTiny2313 anzusprechen und nach ein bischen probieren konnt ich auch die Fusebits auslesen. Dazu hat ich PonyProg 2.07 auf AVR I/O und LPT1 gestellt und "Probe" lieferte "Test ok". Ich hab dann Bascom installiert und musste neustarten. Hatte extra das Kabel gezogen weil die LPTs ja beim booten immer n bischen rumspinnen. Danach gings nicht mehr. PonyProg liefert nun bei gleichen Einstellungen bei "Probe" "Test failed" und folglich kann ich den Chip auch nicht mehr ansprechen. Darum hab ich nun zwei Fragen zum tieferen Verständnis:


    1. Wann liefert PonyProg bei "Probe" Test failed? Erscheint das wenn kein Chip angeschlossen ist oder wird da nur geprüft ob die Schnittstelle (LPT1) überhaupt angesprochen werden kann?


    2. Wie genau muss ich den Chip mit der Druckerschnittstelle verbinden? Reicht es die angegebenen Pins vom Druckerport zu überbrücken und mit Widerständen mit den entsprechenden Pins vom Chip zu verbinden oder muss der Chip zusätzlich noch mit Strom versorgt werden?



    Wär schön wenn mir da jemand weiterhelfen könnte,
    besten Dank im vorraus,
    schönen Gruß,
    bb

  • Also wenn das Kabel schonmal ging, dann scheints ja nicht ganz falsch zu sein!?
    Schau dass in Pony der richtige Chip eingestellt ist.
    Überprüfe nochmal die Lötungen und Verbindungen.
    Strom braucht der AVR auf jeden Fall auch, klar.
    Wichtig ist auch eine Masseverbindung mit dem PC, falls eine externe Stromversorgung stattfindet! Ohne Masseschluß, geht garnix.

  • Das liegt nicht am Kabel. Wenn der "probe test" nicht geht dann liegt das am Anschluss.
    vll mal im Gerätemanager nachschauen oder so. Oder im Bios den Parallelport mal ausschalten und wieder anschalten.


    Der Parallelanschluss soll aber auch relativ empfindlich sein. evtl. ist der defekt. Ansonsten Rs232 nehmen :D

  • schön das ich noch wen auf dieses Tutorial aufmerksam machen konnte :)


    Hm, kann natürlich sein das ich mir jetzt den LPT geschrottet hab, Gerätemanger meckert nicht. Werd ich mal mit nem Drucker testen.
    Es sei noch erwähnt das ich wirklich wenig Ahnung von Etechnik hab. Da ich kein Netzteil hab wollte ich das ganze mit einer 9V Batterie machen. Dazu hab ich mir mit einem Spannungsregler eine kleine Schaltung gebastelt. Ich würde das ganze dann so zusammen setzen wie im Anhang. Würde das so funktionieren?


    edit: achso, der IC2 ist ein 78s05 Spannungsregler und ich hab in Eagle keinen LPT Anschluss gefunden darum hab ich einfach irgendwas anderes genommen um den darzustellen

  • Eine Frage: Muss der µC mit Strom versorgt werden, während man ihn mit dieser Minimalbeschreib-Schaltung (die 4 Leitungen mit Widerstand + GND) beschreiben will? Wenn ja - wie?


    EDIT: Oh man, genau im oberen Post wirds beantwortet :D Kommt davon, wenn man auf Seite 1 direkt auf Antworten klickt... Steinigt mich :D


    Aber eine Frage: Sind die Schaltzeichen mit zwei ausgefüllten Strichen Kondensatoren oder Elektrolytkondensatoren, oder ist das egal?