mikrocontroller.net

Forum: Offtopic zwei schleifen gleizeitig ATmega 8


Autor: Dani5678 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute ichh weiß nicht ob es dieses problem als forum schonn gibt 
ich hab jedenfalls nichts gefunden

Also ich möchte eine simple Uhr programieren dazu muss aber die stunden 
schleife und minuten schleife gleichzeitig laufen ich hab keine Ahnung, 
wie ich das machen soll

Könnt ihr mir helfen

Dani5678

: Verschoben durch Moderator
Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dani5678
> Könnt ihr mir helfen
Ja, wenn du dir helfen lässt...

> Also ich möchte eine simple Uhr programieren dazu muss aber die stunden
> schleife und minuten schleife gleichzeitig laufen ich hab keine Ahnung,
> wie ich das machen soll

Also, wenn du deinen Sunden hochzählst, musst du, wenn die Sekunden auf 
61 sind, Sekunden auf 0 und Minuten +1.

Wenn dann deine Minuten auf 61 sind... Stunden +1
Wenn Stunden auf 24 dann alles auf 0.

Hoffe es hat geholfen. Was dir mehr helfen würde, währe ein 
Programmablaufplan. Offensichtlich scheitert dein "Projekt" nicht an der 
Syntax (möglicherweise erst später ;-) ) sonder daran, dass du nicht 
weißt wie eine Uhr funktioniert :-)

Knut

Autor: Ein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I. L. schrieb:
> Also, wenn du deinen Sunden hochzählst, musst du, wenn die Sekunden auf
> 61 sind, Sekunden auf 0 und Minuten +1.

Oje, am besten ihr tut euch zusammen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dani5678 schrieb:
> Hallo Leute ichh weiß nicht ob es dieses problem als forum schonn gibt
> ich hab jedenfalls nichts gefunden
>
> Also ich möchte eine simple Uhr programieren dazu muss aber die stunden
> schleife und minuten schleife gleichzeitig laufen ich hab keine Ahnung,
> wie ich das machen soll

Es gibt keine Stundenschleife und es gibt keine Minutenschleife.
Was es gibt ist eine Uhrzeit bestehend aus Stunden und Minuten. Und zu 
dieser Uhrzeit wird immer wieder mal 1 Minute dazugezählt.
Und da du die Uhr schon im Vorschulalter gelernt hast, weißt du, dass es 
bei einer Uhr keine Anzeige von 60 Minuten gibt. Wenn dir also beim 
Dazuzählen von 1 Minute rauskommt, dass du bei 60 Minuten angelangt 
bist, dann werden die Minuten wieder auf 0 gesetzt und dafür 1 Stunde 
dazugerechnet.

Autor: Guru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es gibt keine Stundenschleife und es gibt keine Minutenschleife.

Klar gibts die! Die lagen gleich neben dem Jump-Offset Rechnern und dem 
Nachfüllsilizium bei Vobis. Aber heutzutage macht man ja alles mit 
Köpfchen. Alles Weicheier.

Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uuups ja, wa etwas zu schnell. Man muss doch nur bis 60 Zählen, wa nicht 
sicher ob die 60zigste noch zu Ende gezählt werden muss... Aber muss sie 
natürlich nicht... Sorry

Ein schrieb:
> Oje, am besten ihr tut euch zusammen.

Beruhige dich wieder


Knut

Autor: Grübler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> Wenn dir also beim
> Dazuzählen von 1 Minute rauskommt, dass du bei 60 Minuten angelangt
> bist, dann werden die Minuten wieder auf 0 gesetzt und dafür 1 Stunde
> dazugerechnet.

Was man hier alles lernen kann!

Autor: Guru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Karl Heinz Buchegger schrieb:
>> Wenn dir also beim
>> Dazuzählen von 1 Minute rauskommt, dass du bei 60 Minuten angelangt
>> bist, dann werden die Minuten wieder auf 0 gesetzt und dafür 1 Stunde
>> dazugerechnet.

>Was man hier alles lernen kann!

Karl Heinz is einfach gut. Sollte jeder einen haben. ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grübler schrieb:
> Karl Heinz Buchegger schrieb:
>> Wenn dir also beim
>> Dazuzählen von 1 Minute rauskommt, dass du bei 60 Minuten angelangt
>> bist, dann werden die Minuten wieder auf 0 gesetzt und dafür 1 Stunde
>> dazugerechnet.
>
> Was man hier alles lernen kann!

Gelle!
Und heute rechnen wir dann das erste mal mit Computern.
Also Franz. Wieviel sind 2 Computer plus 3 Computer?

Autor: Grübler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> Und heute rechnen wir dann das erste mal mit Computern.
> Also Franz. Wieviel sind 2 Computer plus 3 Computer?

Ein Cray!!

Wer ist Franz?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> Wieviel sind 2 Computer plus 3 Computer?

Ein erster Anfang für Seti@home?

Autor: ydna (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grübler schrieb:
> Wer ist Franz?
Klein Fritzchen für Österreicher.

http://de.wikipedia.org/wiki/Fritzchen

Autor: -.- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Silvia A. (silvia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch einfach 3 Quarze
1) 1 Hz für die sekunden
2) 1 Miliherz für die Minuten
3) 1 Microherz für die Stunden

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ein Hühnerherz in die Suppe.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das machst Du mit einem Interrupt, alles andere wird keine Uhr. Und dann 
koenntest Du in der Interrupt-Routine z.B. schreiben:

  if (setup_mode == SETUP_NONE)
  { // increment the clock by one second
    if ((_time.seconds = (++_time.seconds)%60) == 0)
    {
      if ((_time.minutes = (++_time.minutes)%60) == 0) 
      {
        _time.hours = (++_time.hours)%24;
      }
    }
  }

Durch die Modulorechnung spart man sich gewisse unelegante Abfragen, wie 
weiter oben angedeutet.

Die Schachtelung fuehrt dazu, dass sich das ganze exakt wie eine Uhr 
verhaelt, von 00:00:00 bis 23:59:59 und dann Ueberlauf wieder zu 
00:00:00.

P.S. Warum ist das in Offtopic?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich ins Offtopic verschoben, weil bis auf Deine Antwort absolut 
nichts sinnvolles gepostet wurde und sogar Karl-Heinz mit seiner 
Engelsgeduld komplett versagte (was ich in der Form auch noch nicht 
erlebt habe).

Zu Deiner Vorgehensweise sei angemerkt, daß es sinnvoller ist, die 
ganzen Berechnungen aus der Interruptroutine herauszuhalten und nur 
einen Minutenzähler zu erhöhen.
An den Stellen im Programm, an denen dann tatsächlich die Uhrzeit 
benötigt wird, kann aus diesem Minutenzähler dann die tatsächliche 
Uhrzeit bestimmt werden.
So jedenfalls ist die übliche Vorgehensweise, auch wenn eher Sekunden 
als ganze Minuten gezählt werden.

Autor: daniel castano (dani5678)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ALso vielleicht war das ganze falsch formuliert die Uhr soll für die 
neunte klasse sein also das will ich als projekt machen ich hab also 10 
LEDs an den mikrokontroller angeschlossen 6 für die Minuten 4für die 
Stunden nur bis 12 und das Programm sollte nicht so kompliziert sein 
weil der Lehrer da etwas dagegen hat.
Also habe ich die Uhr BInär programmiert einfach nach dem prinzip:


DO
Wait 60
PORTD.0 = 1
Wait 60
PORTD.0 = 0
PORTD.1 = 1
.
.
.
Loop

UND wie schaffe ich es jetzt,dass noch eine SChleife mit den Stunden 
paralell läuft ??????

Dani5678

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:
> Durch die Modulorechnung spart man sich gewisse unelegante Abfragen, wie
> weiter oben angedeutet.

wobei hier zu klären wäre, ob das wirklich vorteilhafter ist.
60 ist keine sehr freundliche Zahl zum dividieren

Autor: Julian O. (juliano)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Mikrocontroller mit nur einem Rechenkern kann auch nur eine Schleife 
gleichzeitig abarbeiten (genau so wie ein PC).

Du hast jetzt folgende Möglichkeiten:
- ein Betriebssystem zu verwenden (FreeRTOS o.Ä.)
- mehrere AVRs verwenden
- Einen FPGA verwenden
- Deinen Lehrer in den Hintern treten: "...er mags nicht wenns 
kompliziert ist"
- Endlich mal aufpassen/selbst lernen wie ein Mikrocontroller 
funktioniert.

Wenn ich mir alledings deine nicht vorhandene Fähigkeiten zur 
Abstrahierung einer Aufgabe und deren Umsetzung in einen Programmablauf 
angucke stellt sich die Frage, ob es nicht besser wäre erst mal an einem 
PC zu programmieren.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
daniel castano schrieb:
> UND wie schaffe ich es jetzt,dass noch eine SChleife mit den Stunden
> paralell läuft ?

Indem du als erstes mal lernst, wie du in deinem BASCOM Variablen
anlegst, wie du mit diesen rechnest und wie man Bedingungen
formuliert.

Das Umrechnen der Zeit in ein LED-Muster ist dann in jeder Minute
nur noch der abschließende Schritt.

Autor: daniel castano (dani5678)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ALso danke für eure ANtworten es war mir fast schon klaar, dass ein 
controllerr nur eine Schleife machen kann also werde ich einfach zwei 
verwendeden ;-)

ALso nochmals Danke

Dani5678

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So mal schnell aus dem Bascom Manual gezaubert:
$crystal = 4000000
Config Clock = Soft
ENABLE INTERRUPTS
DDRB = 255
DDRD = 255
Do
  PORTD = _minute
  PORTB = _hour MOD 12
Loop


Peter

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. Firefly schrieb:
> Das habe ich ins Offtopic verschoben, weil bis auf Deine Antwort absolut
> nichts sinnvolles gepostet wurde und sogar Karl-Heinz mit seiner
> Engelsgeduld komplett versagte (was ich in der Form auch noch nicht
> erlebt habe).

He he!

Ich bin eigentlich davon ausgegangen, dass jeder zivilisierte Mensch das 
Funktionsprinzip einer Uhrenanzeige verstehen kann, wenn er seinen 
Radiowecker einfach mal ein paar Minuten zusieht.

Offenbar ist dem aber nicht so.

(Und ausserdem hab ich in letzter Zeit nicht mehr soviel Zeit. 
Abgabetermin und so)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vlad Tepesch schrieb:
> Michael G. schrieb:
>> Durch die Modulorechnung spart man sich gewisse unelegante Abfragen, wie
>> weiter oben angedeutet.
>
> wobei hier zu klären wäre, ob das wirklich vorteilhafter ist.
> 60 ist keine sehr freundliche Zahl zum dividieren

Das schaffte er schon.
Der AVR hat eine ganze Minute Zeit dafür.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
daniel castano schrieb:
> ALso danke für eure ANtworten es war mir fast schon klaar, dass ein
> controllerr nur eine Schleife machen kann also werde ich einfach zwei
> verwendeden ;-)

Oh Mann.
Dafür gehört dir ein Tritt in den ....

Wie stellst du eigentlich die aktuelle Uhrzeit ein?

> und das Programm sollte nicht so kompliziert sein
> weil der Lehrer da etwas dagegen hat.

Das Ganze hat nichts mit kompliziert zu tun.
Eher schon mit den elementarsten Grundlagen der Programmierung.

Autor: daniel castano (dani5678)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NA ja der hat uns so ein kleines büchlein gegeben und da steht fast nix 
drinn außer dem, was ich da oben geschrieben habund mit denen paar 
Befehlen soll man das alles machen und nicht irgendwelche anderen 
Befehle verwenden deshalb ist dass auch ein wenig blöde

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.