mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM: Time/Date-Funktion und ISR zusätzlich


Autor: micha b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das Ziel ist es, dieTime$ und Date$ - Funktion mit einer anderen ISR zu
kombinieren.

Aktiviert über...
 Enable Interrupts
 Config Date = Dmy , Separator = .
 Config Clock = Soft
 Date$ = "04.05.06"
 Time$ = "00:00:00"
... wird die aktuelle Zeit errechnet.

Nun möchte ich zusätzlich genau im Sekundentakt noch andere Funktionen
aufrufen, nämlich das Senden und den Empfang eines Strings über die
RS232, sowie im Anschluß daran das Aktualisieren des Bildinhaltes eines
Grafikdisplays über SPI.

Wenn ich jetzt mit...

 On Timer0 int_routine

... versuche eine ISR aufzurufen sagt mir der Compiler natürlich, daß
die ISR bereits über Date/Time-Funktion definiert bzw. belegt ist.

Any Ideas?


Danke :-)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom gegen Programmiersprache tauschen.
Sonst die Sekunden des Time$ abfragen und mit vergleichen, ob sie noch
genauso aussehen wie vorher...

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

"Bascom gegen Programmiersprache tauschen"

Unqualifizierte Aussage.
Ich Progge zwar in C aber ich mache nicht das Auto vom Nachbarn nieder
;)

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimmste eben T1 oder T2.


Peter

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans: ich habe kein Auto...
Und wenn etwas nicht so klappt, wie ich es mir vorstelle, und es nicht
an mir, sondern am Werkzeug liegt, dann suche ich mir ein anderes
Werkzeug.
Bascom ist schön für den Einsteig, aber wenn Projekte dann aufwändiger
werden, hat man eigentlich keine andere Möglichkeit als zu wechseln, da
Bascom doch sehr an sein Baukastensystem gebunden ist.
Bascom geht sehr ausschweifend mit den Resourcen eines Controllers um.

Übrigens habe ich neben der "unqualifizierten Aussage" auch noch eine
Lösung angeboten (im Gegensatz zu anderen Postern...).

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul,

"Übrigens habe ich neben der "unqualifizierten Aussage" auch noch
eine
Lösung angeboten (im Gegensatz zu anderen Postern...)."


Warum wäre T1 oder T2 keine Lösung ?


Peter

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch... Du warst auch nicht gemeint. Vielleicht hätte ich lieber "im
Gegensatz zu dir" schreiben sollen. Ich bin da immer etwas
verallgemeinernd...soll nicht wieder vorkommen.

Autor: micha b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul: Interessante Idee... Ich probier's mal, danke für den Tipp!

@Peter D: "Nimmste eben T1 oder T2." Wie bekomm ich darauf den
Sekundentakt? Sorry, wahrscheinlich blöde Frage... Aber wär ich schon
Profi müsst ich nicht fragen :-)))

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Micha,

das hängt von Deinem Quarz ab.

Z.B. Quarz = 11,0592MHz:

T1 in Mode 12 (Top = ICR1)

Prescaler = 1024

ICR1 = 10799

Dann kommt der T1 Input Capture Interrupt alle:

11,0592MHz  1024  10800 = 1s


Peter


P.S.: AVR = ATMega8

Autor: micha b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter:
Hihiiii...
Jetzt verstanden. :-)

DAS würde mein Problem aber nicht lösen, da die Aktionen auf der RS232
bzw SPI niemals durch die ISR unterbrochen werden sollen.

Wenn ich das Ganze mit nem einfachen Timer machen würde, würde sich
solch eine Überschneidung mit dem Takt des 32kHz-Quarzes der den
Sekundentakt erzeugt zwangsläufig irgendwann ergeben...

Deshalb wollte ich mich an dessen ISR "dranhängen", denn dann kann es
keine Überschneidungen geben (solange meine ISR nicht 1 sek zur
Abarbeitung braucht).

Anm:
Setze einen ATM128 mit 16MHz und 32kHz-Quarz für den Sekundentakt ein.

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"DAS würde mein Problem aber nicht lösen, da die Aktionen auf der RS232
bzw SPI niemals durch die ISR unterbrochen werden sollen."


Und was stört Dich daran ?

Wenn man es richtig programmiert, machen Interrupts auch keine
Probleme.


"Setze einen ATM128 mit 16MHz und 32kHz-Quarz für den Sekundentakt
ein."

Dann kannst Du den 32kHz Quarz ruhig abklemmen, der ist wirkungslos.
Der kann nämlich nur mit T2 benutzt werden.
Du sprachst aber davon, daß die Uhrenroutine mit T0 arbeitet, also mit
dem 16MHz Quarz.


Peter

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

"@Hans: ich habe kein Auto...
Und wenn etwas nicht so klappt, wie ich es mir vorstelle, und es nicht
an mir, sondern am Werkzeug liegt, dann suche ich mir ein anderes
Werkzeug."

Was versuchst du dich rauszureden ?
Du hast gleich im ersten Satz eine von vornherein Pauschale abwertende
Aussage gemacht das Bascom keine Programiersprache sei und das habe ich
dir angekreidet.
Das du daran noch schnell nen Tip geklebt hast spielt kein Rolle.
Sei ein Mann und steh auch dazu,alt genug dafü bist du ja.

Nein ,Antworte nicht,ich kenn die Antwort schon die jetzt kommt.
Woher ?
Dreh dich mal in Gedanken um ca. 110° (Also Rechtsherum) und verlänger
ebenfalls in Gedanken die Linie ;)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und immer noch kein Lösungsvorschlag deinerseits.

Wieso sollte der Wechsel einer Programmiersprache nicht ein hilfreicher
Tipp sein?
Ich programmiere auch in VB, weil es schnell zu programmieren geht.
Allerdings hat VB den grossen Nachteil, dass es ziemlich langsam ist,
und wenn man Sachen programmieren will, die zeitkritisch sind, dann
sind andere Programmiersprachen (C, C++...) angebracht.
Mag sein, dass sich "Bascom gegen Programmiersprache tauschen."
(ziemlich) wertend klingt, aber wenn man sich das, was der
BASCOM-Compiler an Assembler-Code produziert, anguckt, stellt man fest,
dass er nicht wirklich optimal arbeitet.
Weiterhin haben andere Poster (auch der Ursprungsposter) diese Zeile
einfach ignoriert. Der Ursprungsposter hat meinen Vorschlag sogar in
seine Überlegungen einbezogen. Somt sind etwa 50% meines Posts schon
mal sinnvoll gewesen.

>Nein ,Antworte nicht,ich kenn die Antwort schon die jetzt kommt.
>Woher ?
>Dreh dich mal in Gedanken um ca. 110° (Also Rechtsherum) und
>verlänger ebenfalls in Gedanken die Linie ;)
Wenn ich dem so tue, bin ich beim Kieler Fernsehturm...

Liefere eine Lösung, und du darfst dich weiterhin wie mein
Deutschlehrer in der 9. und 10. Klasse aufführen. Der wusste auch immer
alles besser (obwohl er sowas von daneben lag...).

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,so zickig wie du dich aufführst kann man wirklich glauben einen
Halbstarken vor sich zu haben der nur in Extreemen unterscheidet.

Es geht nicht darum welche sprache besser oder schlechter ist (Du
erinnerst dich ? Ich Progge zb. in C) sondern darum das du als
allererstes mit dem klassischen "xxx ist Kacke..." kommst.

Alles andere was du schreibst ist der wiederholte Versuch von diesem
Punkt abzulenken.

PS:
Hast du dich mittlerweile mal herumgedreht ? ;)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du dich mittlerweile mal herumgedreht ? ;)
kannst du lesen?

Ich habe nie gesagt, dass irgendwas kacke sei, das wurde von dir in
meine Aussage hineininterpretiert.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
">Hast du dich mittlerweile mal herumgedreht ? ;)
kannst du lesen?"

Ja,kann ich und dazu hast du noch nix gesagt.


"Ich habe nie gesagt, dass irgendwas kacke sei, das wurde von dir in
meine Aussage hineininterpretiert."

Ich zitiere mal deinen ersten Satz hier um deinem Gedächtnis
nachzuhelfen.

'Bascom gegen Programmiersprache tauschen.'

Was ist daran falsch zu deuten ?


Kann aber auch sein das du Suaheli sprichst und ich das nur nicht merke
;)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du meinst.

Autor: Zlatko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Och,jetzt schmollt er auch noch :D

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

"wenn du meinst."

Ja,tu ich.

Hätt ich keine Meinung dann würd ich hier nicht schreiben ;)

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde solche Diskussionen immer ziemlich sinnlos, da sie einerseits
nichts mit dem Thema zutun haben (ausser, dass ich mal wieder meine
Meinung über Bascom von mir gegeben habe), und andererseits überhaupt
nichts bringen, weil mich Hans Meinung nicht wirklich interessiert. Ob
er nun meint, das ich ein Idiot, Proleth oder dergl bin, kann mir auch
egal sein. Die Wahrscheinlichkeit, mit ihm mal persönlich zutun zu
haben, ist ziemlich gering ("Anonymität des Internets...").
Interessanterweise hat sich bisher niemand ausser Hans über den Spruch
muckiert. Noch viel interessanter ist, dass ein Bekannte von mir mit
Bascom angefangen hat, und schnell merkte, dass er an dessen Grenzen
gestossen ist.
Vielleicht sollte Hans in die Politik gehen: da wird auch an allem
rumgemäkelt, und es kommt dabei nichts raus.
Für mich ist dieser Thread erst mal erledigt, sofern keine Beiträge zum
Thema mehr kommen, und hier nur irgendwelche "Hänse" sich über die Art
/ Unarten anderer Forumsnutzer auslassen und nichts zum Thema selbst
beitragen.

micha b hat doch mit seiner Frage nur wieder gezeigt, dass Bascom ganz
nett ist, aber für aufwändigere Sachen zu umständlich oder gar nicht
geeignet ist.
Wer den Spruch "Bascom gegen Programmiersprache tauschen" anstössig
findet, sollte meine Beiträge lieber meiden...

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,dich kann man ja leicht auf die Palme treiben was ?

"ausser, dass ich mal wieder meine
Meinung über Bascom von mir gegeben habe"

Na endlich haste es dann doch zugegeben.


"und andererseits überhaupt
nichts bringen, weil mich Hans Meinung nicht wirklich
interessiert......"


Na,dafür das es dich nicht interessiert bist du aber sehr gut dabei.


"Vielleicht sollte Hans in die Politik gehen: da wird auch an allem
rumgemäkelt, und es kommt dabei nichts raus."

Ja,das sagt gerade der der sich im ersten Satz auf die
Programiersprache wirft anstatt was zum Topic beizutragen.

"Für mich ist dieser Thread erst mal erledigt, sofern keine Beiträge
zum
Thema mehr kommen, und hier nur irgendwelche "Hänse" sich über die
Art
/ Unarten anderer Forumsnutzer auslassen und nichts zum Thema selbst
beitragen."

Ja,das übliche.
Verstroickt man sich dann Fluchtankündigung mit anschließendem
Nachtreten.
wie berechenbar.


"micha b hat doch mit seiner Frage nur wieder gezeigt, dass Bascom
ganz
nett ist, aber für aufwändigere Sachen zu umständlich oder gar nicht
geeignet ist."

Du fängst ja schon wieder an....

"Wer den Spruch "Bascom gegen Programmiersprache tauschen"
anstössig
findet, sollte meine Beiträge lieber meiden..."

Antwort 1: Wer sagte nochmal "Wer schweigt,der stimmt zu ! " ? ;)
Antwort 2: Das gleiche gilt auch indem man nicht zu Sprachen antwortet
die man ablehnt.
(Such dir was aus.Mir gefallen beide)






Bist du am Ende doch noch ein Jugendlicher ?
Ich meine weil es passen würde.
Eine kleine Kritik und schon geht dir der Ballon hoch. :)


Ich sag mal "Getretene Hunde..." :) g

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch was für unsere spitzfindigen "Forumsnutzer":

"Unqualifizierte Aussage."

Unqualifiziert bestimmt nicht, da ich aus eigener Erfahrung und
diversen Threads hier im Forum über Bascom urteilen kann. Wenn dann war
es eine "unangebrachte Aussage".

Übrigens verurteile ich Basic auf Mikrocontrollern nicht grundsätzlich;
nur finde ich BASCOM nicht ganz ausgereift, wie auch obiges Problem
wiedermal gezeigt hat.
Bei BASCOM hat man ein paar schöne vorgefertigte Routinen. Wenn man
dieses Schema aber erweitern oder verändern will, kann man alles von
Hand machen. Dann kann ich es auch gleich in C schreiben (was höchstens
von der Syntax gewöhnungsbedürftiger ist, weil man andere "Vokabeln"
und vielleicht auch eine andere Grammatik lernen muß), weil ich dort
fast alles zufuß machen darf.

PS: Hans, ich hätte gerne früher was geschrieben, aber das schöne
Wetter zwang mich, mich im Freien ohne Internetanschluß aufzuhalten.

PPS: Es gab mal die BASIC-Briefmarke (von Wilke Elektronik? Gibts
vielleicht auch immer noch...) die war von ihrem Basic-Dialekt
vielleicht etwas beschränkter, dafür aber IMHO etwas umgänglicher.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

Aus meiner sicht machst du dich jetzt wirklich Lächerlich.
Du verdeitigst eine Aussage die man nicht verteidigen kann weil sie
eindeutig ist,da muß ich Ratber recht geben.


@Ratber

Hast du wieder deine "Bissige Phase" ?


Just my 2 cent.

Und wieder weg.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bist du am Ende doch noch ein Jugendlicher ?

ja, jetzt habt ihr mich erwischt.
Ich bin immer noch 12 Jahre alt...
Und beim nächsten Mal markiere ich meine persönliche Meinung zu
irgendwelchen Themen expltizit...Oder halte gleich meine Klappe.
Ich hab einfach keine Lust auf Kritik zu meiner Person.
Wenn ich schon son "scheiss" schreibe, dann sollte ich wohl dazu
stehen, oder?
Wieso versuche ich mich eigentlich immer noch zu rechtfertigen?

>...nicht verteidigen kann weil sie eindeutig ist...

Um Eindeutigkeit geht es doch...und das habe ich in meinem letzten
Thread versucht zu erklären. Viielleicht sollte ich micht mal an die
Entwickler von Bascom wenden, und mit ihnen über meine
"Verbesserungsvorschläge" diskutieren.
So, mal sehen, was jetzt wieder kommt.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@micha:
Ich würde es so machen, das du den zweiten Timer (eventuell durch ein
delay) erst später startest als den uhren timer.
So haben beide ISRs genug Zeit ihre Aufgaben zu machen, und dir wird es
nicht auffallen ob die Ausgabe nun 500ms verzögert Aktualisiert wird :)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

"So, mal sehen, was jetzt wieder kommt."

Ne,danke .ich biegew mich gerade etwas.
Weißt schon ;)

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.