- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 42

Thema: Zielscheibensystem mit Zufall

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Du schreibst immer noch für einen Atmega8 - ist Dir das schon aufgefallen?

    Was soll man jetzt zu diesem Programm sagen?? - fang nochmal an oder das ist es wohl noch nicht.

    Also cih verstehe nichts von dem was Du hier codest.

    Wozu änderst Du alle 250ms den Wert von Scheibe? Da kanst Du doch auch gleich den letzten Wert im Block nehmen.
    Wofür sind die Interrups überhaupt angegeben? - Die machen doch nichts wenn ich das richtig sehe.
    A wird nicht zurückgesetzt.
    Die Scheife wird vermutlich auch schneller durchlaufen sein, als Du blinzeln kannst.


    Viele Grüße

  2. #2
    DjEKI
    Gast
    Du hattest mir keine Antwort geschrieben, warum du meinst, dass es nicht für den ATmega32 ist und hast mich schon wieder nur darauf hingewiesen, dass dieser Script nicht für den ATmega32 ist, sondern für den mega8. Könntest du mir denn jetzt bitte sagen, warum dass so ist?

    Meine Idee war, die 250ms so auf zu teilen, dass es am Ende 2 Sekunden ergibt. Und fals ein Interrupt auftreten sollte, genau in der MilliSekunde stehen bleibt, dann ist der letzte vergebene Wert für die Aktivierung der nächsten Zielscheibe.
    Dann wollte ich: Der letzte Wert am ende des Layers, hat bei Scheibe1 den Wert 3, Scheibe2 den Wert 2 und Scheib3 den Wert 1. Die sind desshalb unterschiedlich, fals man die Zielscheibe nicht getroffen hat, dann kommt die nächste Zielscheibe und nicht nochmal die Selbe.

    -EDIT-
    Ich habe sowieso eben bemergt:
    Line:58 "und" 60 Variable can not be used with SET [SCHEIBE = 1 "und" 2]

    mfg EKI
    Geändert von DjEKI (11.02.2013 um 20:04 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    oh sorry, ich hatte in dem Beitrag überlesen das ich angesprochen war ganz oben die erste Zeile sagt es aus: m8def.dat (-> m32def.dat)


    Wieso darf denn nicht auch die selbe Zielscheibe nochmal kommen? Wäre doch okay, vor allem wenn man schon weggezogen hat um ne neu aus zu suchen? Vielleicht aber dann nicht nochmal
    Ich denke den ganzen Block mit den drei verschieden Scheiben kann man sehr viel kürzer schreiben.
    Wenn man annimmt der Wert ist 2, dann zählt man solange durch, bis Interrupt, wenn der Wert dann gleich 2 ist, ziehe eine 1 ab oder zähle 1 dazu, man könnte auch 3 dazu zählen lassen um ne neue Scheibe auszuwählen - schon ist das Problem weg.

    Aber woher weiß den Dein Programm wann es welchen Interrupt ausführen soll? - vielleicht habe ich das selbst auch nur noch nicht verstanden.
    Wenn ich soweit verstanden habe, dann müßtest du im Interrupt den Wert der Scheibe ändern, denn sonst läuft es bis zum letzten wert durch sobald es aus dem interrupt wieder zurück an Stelle springt.

    Viele Grüße
    Geändert von HeXPloreR (11.02.2013 um 20:11 Uhr)

  4. #4
    DjEKI
    Gast
    Axo, der Interrupt kommt durch ein Taster. Int0 und Int1 sollen per Taster, Also Zielscheibe 5 Punkte und 10 Punkte aktiviert werden. Oder muss ich die Int0 und 1 als Input angeben?
    Wenn nicht, habe ich ja nur 2 Interrupt eingänge. Und die müssen ja irgendwie mit den Druckplatten verbunden werden. Ich hätte es lieber so, dass nur die aktiverte Scheibe funktioniert, und alle anderen deaktiviert sind. Da aber sich alles nur mit Interrupt arbeiten lässt, sind halt alle Scheiben aktiv, dass heißt, auch wenn die SCheibe nicht leuchtet, könnte man damit ein Punkt machen. Wäre ja aber Betrug ^^

    PS, danke für den Hinweis, die obere Zeile mit m8def.dat habe ich von nen anderen SCript kopiert und mir nichts dabei gedacht.

    mfg EKI

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Wenn nicht, habe ich ja nur 2 Interrupt eingänge. Und die müssen ja irgendwie mit den Druckplatten verbunden werden. Ich hätte es lieber so, dass nur die aktiverte Scheibe funktioniert, und alle anderen deaktiviert sind. Da aber sich alles nur mit Interrupt arbeiten lässt, sind halt alle Scheiben aktiv, dass heißt, auch wenn die SCheibe nicht leuchtet, könnte man damit ein Punkt machen. Wäre ja aber Betrug
    Das habe ich mir auch überlegt (auch wenn ich mich in den Rest des Codes nicht wirklich reingedacht habe).
    Ich glaube, die einzig gute Lösung hierfür ist ein Controller mit 12 Interrupt-Eingängen, von denen jeweils immer nur die zwei aktiviert werden, die zur momentan aktiven Scheibe gehören. Da gäbe es z.B. den Mega88 (28 Pins, kompatibel zum Mega8 , der hat 2 "normale" Interrupt-Eingänge, und 20 (!) sogenannte Pin-Change-Interrupt-Eingänge.

    Aber bevor ich lange weitererzähle was es damit auf sich hat, müsstest Du erstmal sagen, ob Du hinsichtlich des verwendeten Controllers soweit flexibel bist...

  6. #6
    DjEKI
    Gast
    vom geld her sollte es nicht scheitern. ich werde mir den besorgen. ich bin jetzt auf arbeit und kann daher nicht sagen, ob mein board sowas ansteuern kann. ich müsste sowieso bei conrad noch was bestellen, aber könntest du mir bitte sagen, ob es ein passendes board gibt? ich bräuchte endlich mal USB aber wenn das zu teuer ist, dann löte i mir auch selber was zusammen.

    ok, aber in meinem code habe i sowieso 2 Fehler. set scheibe und goto im label int0_5punkte, wie könnte i die beheben ?

    mfg eki

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo!

    Eine Interruptroutine muß mit "RETURN" abgeschlossen werden!

    Set Scheibe = X ist Unsinnig.
    Entweder Set Scheibe (Scheibe = 1) oder Reset Scheibe (Scheibe = 0)
    Die ganzen GOTO's sind zu vermeiden.
    Stackwerte einfügen.

    Bascom Hilfe lesen, lesen, lesen.

    MfG

Ähnliche Themen

  1. 4 Led´s unabhängig per Zufall blinken lassen?
    Von DanielSan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 20.07.2011, 13:43
  2. Wie denn "Zufall" programmieren
    Von Cybrix im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 11.06.2007, 09:10
  3. Zufall wirklich Zufall ???
    Von Speed im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 03.08.2006, 12:03
  4. LED´s per Zufall leuchten lassen
    Von Hoomer im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 05.02.2006, 14:45

Berechtigungen

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

12V Akku bauen