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

Thema: PIC 12F675 Tastendruckzeit auswerten in Assembler

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Fürs Lernen kann's nicht schaden: https://www.roboternetz.de/wissen/in.../PIC_Assembler . Leider kann ich dir nicht helfen, weil ich die Mnemonics vom ASM Quellcode aus unnötigem Text zu "fischen" hasse.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    13.05.2013
    Ort
    Lebach, Germany
    Alter
    62
    Beiträge
    6
    Zitat Zitat von PICture Beitrag anzeigen
    Hallo!

    Fürs Lernen kann's nicht schaden: https://www.roboternetz.de/wissen/in.../PIC_Assembler . Leider kann ich dir nicht helfen, weil ich die Mnemonics vom ASM Quellcode aus unnötigem Text zu "fischen" hasse.
    Hallo
    Danke für den link.
    Was heißt das in Satz2 auf deutsch?
    Wie kann ich das anders beschreiben?
    VG Bernd

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Falls du "Mnemonics" meinst, sind es zugeordnete englische Namen für Maschinenbefehle (z.B. "movf", "bcf", "bsf", usw.), die als Binärzahlen für Menschen sehr unverständlich sind.

    Sorry, aber ich analisiere keine Quellcoden, wenn ich sie selber nicht brauche und fange immer mit Schaltplan + Zeitdiagrammen der Signale an.
    Geändert von PICture (16.05.2013 um 14:44 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    13.05.2013
    Ort
    Lebach, Germany
    Alter
    62
    Beiträge
    6
    OK
    Sorry.
    Was ich nicht verstehe.Warum Antwortest Du, wenn Du nicht helfen willst und dich die Problemstellung nicht interessiert?

    Für mich war das die Frage, ob man das so umsetzen kann?

    Der "unnötige Text" sollte einfach nur erklären, was es bewirken soll.
    Nee, ich wollte wissen, was unter unnötigem Text zu verstehen ist.

    Schaltplan ist denke ich, hier nicht so relevant.
    Ein Eingang für LINKS drehen, ein Eingang für RECHTS drehen.
    Ein Ausgang für DIR, Ein Ausgang für Impuls.
    Signalverlauf: Beide Eingänge AUS, beide Ausgänge AUS
    Eingang LINKS bis etwa 5 Sekunden ein, Ausgang DIR AUS, Ausgang Impuls EIN/AUS 50ms Takt
    Eingang LINKS größer 5 Sekunden ein, Ausgang DIR AUS, Ausgang Impuls EIN/AUS 10ms Takt

    Das gleiche für RECHTS.
    Nur der Vollständigkeit halber.
    Falls sich noch jemand findet der mir da weiterhelfen will.
    Danke.

    Bernd

    Höflichkeit ist eine Zier, weiter kommt man ohne Ihr.

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Zitat Zitat von DL4VAL Beitrag anzeigen
    Was ich nicht verstehe.Warum Antwortest Du, wenn Du nicht helfen willst und dich die Problemstellung nicht interessiert?
    Ich habe beantwortet, weil ich jedem helfen will. Dafür muss ich mir jedoch das Problem vorstellen können, was aber bisher leider nicht möglich war.

    Zitat Zitat von DL4VAL Beitrag anzeigen
    Schaltplan ist denke ich, hier nicht so relevant.
    Ich habe nur µC Beschaltung von Ein- und Ausgängen gemeint, möchte aber darüber nicht diskutieren.

    Ausserdem anstatt "learning by doing" ist "learning befor doing" sicher effizienter.
    Geändert von PICture (16.05.2013 um 19:31 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    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

  7. #7
    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. [ERLEDIGT] 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
  •  

fchao-Sinus-Wechselrichter AliExpress