mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik wie Uhr ohne Timer-Interrupt?


Autor: Anos B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte hier in einen Microcontroller eine Uhr mit 7segment-Anzeigen 
einprogrammieren. Diesmal kein Atmel, sondern ein PIC, weil der PIC von 
jemand anders so vorgegeben wurde.

Da der mit Abstand preiswerteste Smd-PIC keine Interrupts unterstützt, 
müßte ich etwas tricksen, wenn ich ein genaues Zeitsignal im 
Microcontroller von dem eigenen Quarz haben möchte.

Frage jetzt:
Wenn ich vorher durch einen Timer-Interrupt 255 mal in der Sekunde einen 
Zähler hochzählen lasse, und ich im neuen Microcontroller jetzt keine 
Interrupts mehr zur Verfügung habe, was mache ich dann, um in genauen 
Zeitabständen einen Zeitzähler hochzählen zu lassen? (weil der 
Programm-Code ja immer unterschiedlich lang ist) gar nix? geht es dann 
nicht mehr, oder hat jemand so was schonmal gemacht?

Ich suche ein ungefähres beispiel, wie man das einfach hinkriegen kann. 
es kann allgemein sein, ich suche nur nach einem prinzip.

Genauer gesagt ist es ein PIC 16F57, aber das beispiel kann ein 
allgemeines sein, kann auch von einem atmel, etc.. sein.

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'n Mikrocontroller ohne Timer und Interrupts? Das ist ja wie im 
Mittelalter.

Edit: Naja, nen Timer hat die Rumpel doch, dann nutze diesen doch 
einfach.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anos B wrote:

> Da der mit Abstand preiswerteste Smd-PIC keine Interrupts unterstützt,

Ist das wirklich ernst gemeint, es soll tatsächlich MCs ohne Interrupts 
geben?

Warum baust Du die Uhr dann nicht gleich mit FFs aus Röhren-Trioden auf.

Also ich würde keine Sekunde darüber nachdenken, wie man nen MC ohne 
Interrupts programmiert. Das ist nur verlorene Lebenszeit, wo man 
sinnvolleres machen könnte.


> Ich suche ein ungefähres beispiel, wie man das einfach hinkriegen kann.
> es kann allgemein sein, ich suche nur nach einem prinzip.

Ich bin mir fast sicher, solche Beispiele gibt es nicht.


> Genauer gesagt ist es ein PIC 16F57, aber das beispiel kann ein
> allgemeines sein, kann auch von einem atmel, etc.. sein.

Es gibt keine AVRs ohne Interrupts.


Peter

Autor: Anos B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm.. d.h., ich lese einfach den Timer direkt aus statt über einen 
Interrupt den Wert erhöhen zu lassen. ok..

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde eine externe Echtzeituhr nehmen ;).

Autor: Gast Posti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen Schwingkreis mit einem Quarz, Frequenzteiler und mindestens eines 
der Signale zum µC.
Wobei, wenn man auf Sekundentakt runter geht, wird der µC mit seinem 
Berechnungen wohl fertig sein, bevor die nächste Flanke kommt.

MfG

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas B. (yahp) Benutzerseite

>'n Mikrocontroller ohne Timer und Interrupts? Das ist ja wie im
>Mittelalter.

Es ist ein PIC . . .

duckundwech

Falk

P.S. Mit dem PIC das machen zu wollen ist schon arg sportlich. Das Ding 
hat tatsächlich KEINE Interrupts, aber wenigstens einen 8 Bit Timer. 
Wenn man das klassisch mit Endlosschleife und Pollen des Timers macht 
bekommt man es hin. Nicht schön, aber geht.

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht ob die zusätzlichen Schmerzen und Entwicklungskosten es 
wert sind af diesen einen PIC zu setzen. Ich weiss nicht in welchen 
Stückzahlen ihr euch da am ende bewegen wollt und was Du als Stundenlohn 
hast. Aber das sollte man abwägen, bevor man sich auf sowas einlässt.

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es ist ein PIC . . .

An diesem Bauteil bestätigen sich die üblichen Vorurteile allerdings mal 
;-)

Reichelt will für so ein Ding 1,45. Dafür kann man auch Controller mit 
Interrupts haben.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas B. wrote:

> 'n Mikrocontroller ohne Timer und Interrupts? Das ist ja wie im
> Mittelalter.

Mittelalter stimmt irgendwie. Die Architektur der 12bit PICs, zu denen 
auch dieses erlesene Exemplar gehört, entstand Mitte der 70er und hatte 
auch damals schon keine Interrupts. Da hat er sich ein lebendes Fossil 
ausgesucht. Die Cents die er sich darin spart kommen allenfalls in sehr 
grossen Stückzahlen wieder raus.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas B. wrote:
> Reichelt will für so ein Ding 1,45. Dafür kann man auch Controller mit
> Interrupts haben.

Man, ist der aber teuer.
Der ATtiny2313 kostet da nur 0,95€.


Peter

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Man, ist der aber teuer.
> Der ATtiny2313 kostet da nur 0,95€.

Eben, für das Geld kann man auch Tiny26 oder Mega8 haben. Aber der OP 
wurde ja offenbar zum PIC gedrängt. Ich kann mir aber nicht vorstellen, 
dass Interrupts bei Microchip unbezahlbar sind ;)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, aber man muss 2 Bits mehr investieren. In die Breite.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.