-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Designfrage

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.08.2004
    Beiträge
    15

    Designfrage

    HI@all,
    hab mir mal ne Designfrage zu nem PIC16F84:

    Ich verwende als Sprache cc5x (www.cc5x.de.vu) die mir sehr gelegen kommt da ich da nicht arg umlernen brauche und auch kein ASM lernen muss.
    Ich will mit dem PIC ein 8x2 LCD Display (ja, das _muss_ so klein sein) ansteuern was ja auch recht gut klappt. Desweiteren brauch ich mehrere Eingänge.
    Die Pinbelegung sieht bis jetzt wie folgt aus:

    * Pinbenutzung:
    * PIN| TYP | Verwendung
    * ---+-------------+--------------------------
    * 1 | RA2 |
    * 2 | RA3 |
    * 3 | RA4 / T0CKL |
    * 4 | /MCLR |
    * 5 | VSS |
    * 6 | RB0 / Int | Bit0 LCD Register Select
    * 7 | RB1 |
    * 8 | RB2 |
    * 9 | RB3 | Bit3 LCD Enalbe
    * 10 | RB4 | Bit4 LCD Data
    * 11 | RB5 | Bit5 LCD Data
    * 12 | RB6 | Bit6 LCD Data
    * 13 | RB7 | Bit7 LCD Data
    * 14 | VDD |
    * 15 | OSC2 | Quarz
    * 16 | OSC1 | Quarz
    * 17 | RA0 |
    * 18 | RA1 |

    Ich würd gern noch weitere 2-3 Tasten zur Bedienung anschließen. Desweiteren brauche ich einen Eingang für einen Durchflussmesser (liefert pro definierter Menge einen Impuls via Hall-Sensor),
    einen Raddrehzahlsensor (ebenfalls Halleffekt weil wartungsfrei) und
    einen Temparaturfühler für die Öltemperatur.

    Das ganze soll ein Mini-Bordcomputer für's Motorrad geben und ich frag mich grad was am sinnvollsten vom anschließen her ist und wie ich das mit dem Interrupt mache.

    Das Register-Select des Displays lässt sich sicher umlegen auf was anderes (muss mal die File zum ansteuern des LCDs angucken) damit der Pin frei wird.
    Nur wie und was mach ich mit dem Interrupt. Programmieren kann ich, nur hab ich bisher noch nix mit Interrupts direkt zu tun gehabt.
    Soll ich alle Taster und Eingänge mit dem Interrupt-Pin koppeln oder in einer Endlosschleife die EIngänge abfragen oder wie bewerkstellige ich das am besten?

    Meine zweite Frage wäre folgende:
    Was schlagt ihr bzgl. der Temperaturmessung vor ? Was ist am einfachsten und zuverlässigsten ? Muss nicht supergenau sein, darf auch +-5°C abweichung haben, so genau brauch ichs nicht. Ach ja: Messbereich bis ca. 100°C, nach unten ... hmm, sagen wir ab 0-10°C ....

    Dritte Frage:
    Meint ihr ein PIC16F84 ist überfordert mit Raddrehzahlerfassung und der Berechnung der Geschwindigkeit ? Will zusammen mit dem Durchflussmesser eine Durchschnittsverbrauchsanzeige mit realisieren...Der PIC muss unter Umständen also ganz schön rechnen.
    Raddrehzahlmessen mach ich doch am besten über den Timer mit externem Input, oder ? Dann muss ich auch RB4 umverlegen ?!
    Und gleichzeitig die Impulse des Durchflussmessers zählen... hmm, die dann wohl über Interrupt an RB0 ...

    Naja, wär klasse wenn ihr mit da n paar Anregungen geben könntet.
    Will nicht unbedingt nen größeren PIC nehmen da ich mir dann erst wieder n Experimentierboard und nen Programmer bauen darf. Prinzipiell ist mir die Tankuhrfunktion am wichtigsten. Wenn der Rest zu viel wird kann ich auch was weglassen.

    KOmm ich evtl mit dem PIC16F628 weiter ? Den kann ich mit meinem Programmer auch noch beschreiben...

    Danke,
    - Alex

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    10.08.2004
    Beiträge
    15
    man, hat denn keiner ne Ahnung hier ?

    hab auch schon wie wild gegoogelt .. hab aber nix gefunden....


    - Alex

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.08.2004
    Alter
    38
    Beiträge
    77
    hi alex
    mir wurde heufig geraten den 16f627 oder den 16f628 PIC zu benutzen da die um vieles besser sind als die 16f84 / a
    die können mehr und kosten weniger und die bauen auf dem 16f84 auf
    ich habe selber angefangen mit 16f84a
    also naja mehr kann ich nich sagen
    ---

  4. #4
    Gast
    jo, hab mir den auch schon bestellt. Muss nur noch checken was der alles mehr kann.
    Aber auch bei diesem Chip sind meine Fragen noch unbeantwortet...
    Programmiert denn keiner hier mit Interrupts ?

    Meine Grundlegende Frage ist immernoch die:
    Bei nem PC isses ja so. Alles was so im PC drinsteckt kann einen interrupt auslösen.. Nur gibts da eben mehrere. Mein PIC hat nur einen (zumindest der PIC16F84). Wie stell ich das jetzt an wenn ich mehrere "Geräte" per Interrupt "überwachen" will ?

    - Alex

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    14.07.2004
    Beiträge
    34
    Bei nur einem Interrupt wird bein auslösen geguckt
    wer diesen ausgelöst hat und führt dann den entsprechenden Code aus.

  6. #6
    Gast
    ja aber da sind ja die möglichkeiten begrenzt. Nicht alle Pins können Interrupts auslösen. Wenn ich jetzt alle "Interruptfähigen" Pins bis auf einen anderweitig belegt habe und jetzt 3 Eingänge habe die Interruptüberwacht werden sollen... wie mach ich das Schaltungstechnisch..
    Könnte mir vorstellen daß meine 3 zu überwachende eingänge zusätzlich noch den einen freien interruptpin auslösen und die software die 3 pins dann noch schnell abfragen muss.. Is nur die Frage wie schnell das geht und wielange mein Signal da sein muss damits erkannt wird.

    - Alex

  7. #7
    Gast
    ok, wie ichs elektronisch verschalte weiß ich jetzt (alle weiteren Eingänge die interruptfähig werden sollen per ODER verknüpfen und ergebnis auf Interrupt-Eingang legen).
    Jetzt ist immernoch die Frage: Wie schnell funktioniert das ganze ?
    Wie lange muss grob geschätzt ein Signal anliegen bis ich per IF-Abfrage die Eingänge gecheckt hab ?

    - Alex

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    14.07.2004
    Beiträge
    34
    Grob geschätz sag ich mal kurz...
    Als erstes sperrt du in deiner Interrupt Routine die Interrupts
    und hast von an alle Zeit der Welt auszuwerten welcher Interrupt
    sich da gemeldet hat.

  9. #9
    Gast
    du hast mein problem nicht verstanden...
    Nochmal n Beispiel:
    Ich habe 3 PINS die NICHT Interruptfähig sind. Und ich habe einen Interruptfähigen PIN. Um jetzt für alle 3 PINs Interruptfähigkeit zu bekommen verknüpfe ich diese mittels ODER und gebe das Ausgangssignal des ODERs auf den INterruptpin.
    Wenn jetzt einer der 3 PINs eine 1 bekommt kommt die am uC an ihrem eigenen PIN an und gleichzeitig krieg ich ein Interruptsignal. Jetzt muss ich in der Interruptroutine meine 3 PINs abfragen wo denn die 1 herkommt (da es ja kein Interruptunterstützer PIN war und ich hier n workaroundlösung hab).
    Und jetzt ist die Frage wie schnell ist die INterruptroutine mit den 3 IF-Abfragen für die 3 PINs ?

    - Alex

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    14.07.2004
    Beiträge
    34
    Ach so jetzt hab ichs kapiert.
    Also wenn das Signal was an den jeweiligen Pin kommt
    lang genug ist müsste das klappen.

    Jetzt nur mal grob überschlagen:
    bei 4Mhz ist der Interne Takt 1Mhz, das ist dann eine
    Zykluszeit von 1µs.
    Um in die Interruptroutine zu kommen 10 Zyklen und für die Pinabfrage auch noch mal 10 (alles jetzt nur geschätzt)
    würde 20µs ergeben. Wenn dein Signal also länger ist sollte es gehen.
    Theoretisch....

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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