- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 14

Thema: PIC 12F675 Tastendruckzeit auswerten in Assembler

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    13.05.2013
    Ort
    Lebach, Germany
    Alter
    62
    Beiträge
    6
    Zitat Zitat von RoboHolIC Beitrag anzeigen
    Bevor die Diskussion weiter entgleitet: Ich denke, jeder wird mit der Zeit seine eigene bevorzugte Herangehensweise an neue Dinge entwickeln - und die scheinen nicht immer kompatibel zu einander zu sein. Vielleicht lässt man das einfach so stehen.

    @DL4VAL
    Ich selbst bin froh, wenn ich mich nach einem halben Jahr im Source-Konzept eines abgeschlossenen Hobbyprojekts wieder zurecht finde. Bis auf wenige Detaillösungen habe ich mir allen Sourcecode meiner Projekte Schritt für Schritt selbst erarbeitet und zum funktionieren gebracht.
    Diesen Weg und die damit verbundenen Erfolgserlebnisse will ich dir gar nicht ersparen bzw. vorenthalten. (Wenn du da Faulheit herausliest, würde ich das nicht mal dementieren).

    In den angehängten Quelltext mag ich mich nicht im Detail(siehe oben) einlesen. Allerdings hab ich nach dem org 0x00 ein 'goto Init' gesehen, da würde ich immer ein 'call Init' erwarten, damit der Programmfluss auch wieder zurück kommt und dann das 'goto main' ausführt (goto ist hier möglich aber unfein). Mich wunderts, dass überhaupt was halbwegs sinnvolles passiert.

    Ich schlage stattdessen vor bzw. empfehle dir:
    - fang mit der Einrichtung eines Timerinterrupts an, z.B. 1ms Zyklus.(d.h. Prescaler, Timer-Config, Preloadwert setzen, PIE & GIE-Register passend machen)
    - dann lass je Durchlauf eine Zählervariable inkrementieren
    - werte das Bit 7 der Zählervariable aus: wenn gesetzt, dann LED einschalten, andernfalls LED ausschalten
    Fertig ist eine Blinkfunktionalität (wenngleich vermutlich zu hektisch)

    Dann: baue eine Delayfunktion in der ISR, die den Controller nicht für andere Aufgaben blockiert:
    - wenn restzeit > 0, dann dekrementiere restzeit
    - wenn restzeit == 0, dann
    - invertiere den Pegel auf der Steppertreiber-Pulsleitung ; das ist der eigentliche Nutzen
    - setze restzeit auf den Startwert
    Fertig ist die frequenzstabile Pulserzeugung für den Steppertreiber

    Wenn die Pulserzeugung klappt, kannst du die Richtungssteuerung dazubauen

    Dann vielleicht die Zeitmessung für die EIN-Zeit einer Taste (wie bereits beschrieben)
    und so weiter ...

    Spiele mit den Möglichkeiten, sammle Erfahrung und lass das Datenblatt nicht kalt werden.

    Gruß
    RoboHolIC
    Hallo RoboHolIC
    Danke für die Antwort.
    Da ich schon seit Jahren Excel-VBA beruflich programmiere, weiß ich was Du meinst.
    Nur habe ich mir verschiedene Funktionen geschrieben, die ich als Baustein immer wieder einsetzen kann.
    Spart natürlich Arbeit.
    Irgendwann habe ich auch das "unnötige" Kommentieren angefangen. (Sorry, sollte jetzt keine Anspielung auf vorhergehendes sein)
    Das Kommentieren habe ich Anfangs aus Faulheit auch weggelassen. Nachträglich aber eingefügt, um wieder zu verstehen was abläuft.
    Ich dachte für Assembler gibt es vielleicht auch so "Bausteine" die man einsetzen kann.
    Im Codesys gibt es auch vordefinierte Bausteine und xxx.lib die man verwenden kann.

    Zum Lernen:
    PIC`s (Assembler) sind wie alle, einem selbst neu, neuen Programmiersprachen erst mal sehr unübersichtlich.(Befehle sind nicht in Kopf)
    Einfache Beispiele zum Einarbeiten habe ich bei Sprut gefunden. Ich habe stundenlang verschiedene Sachen gelesen.
    Ein einfaches Beispiel mit Kommentaren, in dem nur ein Eingang digital abgefragt wird und dann z.B. eine LED an einem Ausgang AN/AUS geht habe ich nicht gefunden. "Hallo Welt" für Assembler
    Die Informationen mit analog/digital Eingang und das man die am Anfang (INIT) umstellen muss, konnte ich nur mühsam finden.
    Wie Sprut auf seiner Seite schreibt: Er hat noch kein gutes Buch zu PIC`s gefunden. Danke an Sprut seine Seiten sind super.
    Wenn das Projekt fertig ist, stelle ich den kommentierten Quelltext ein. Habe gelesen, dass viele Anfänger mit solche Problemen kämpfen.

    OK, wird jetzt alles zu lang.
    Meine Schaltung funktioniert jetzt ja, soweit. Habe mir auch so meine Gedanken über Lösungen der schnelleren Taktausgabe gemacht.
    Verschiedene Sachen aus meiner Siemens S5 Zeit, wie Merker etc. sind mir da wieder in den Sinn gekommen.


    Ich werde auch noch googeln was die ISR ist.
    GOTO und REM aus meiner Basiczeit, werde ich dann auch durch Call und ; ersetzen. Danke.
    Das mit den Timern vom 12F675 werde ich ausprobieren, wenn das Teil über die Verzögerungs-Schleifen läuft.
    Schön das man einen PIC mehrmals brennen kann.

    Dann Danke mal vorerst.

    Gruß Bernd
    Geändert von DL4VAL (17.05.2013 um 12:52 Uhr) Grund: Schreibfehlerteufel

Ähnliche Themen

  1. Problem mit XORLW [PIC 12F675]
    Von TimoH im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 06.12.2010, 10:10
  2. pic 12f675 geht nicht
    Von martini007 im Forum PIC Controller
    Antworten: 12
    Letzter Beitrag: 01.12.2009, 18:50
  3. PIC 12F675 kaputt??
    Von martini007 im Forum PIC Controller
    Antworten: 7
    Letzter Beitrag: 18.10.2009, 12:58
  4. Interne Pull-Up beim PIC (12F675) - WIE einrichten?
    Von Radfahrer im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 14.10.2009, 18:32
  5. Zeichen von PIC 12F675 über Rs232 versenden
    Von der dritte Mann im Forum PIC Controller
    Antworten: 0
    Letzter Beitrag: 22.11.2005, 20:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen