- Akku Tests und Balkonkraftwerk Speicher         
Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 45 von 45

Thema: Multitasking

  1. #41
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    Anzeige

    Powerstation Test
    Ich glaube ihr versteht mich nicht ganz!

    Ich will von PA0 - PA7 dass eine LED mit 25ms Takt hin un herbewegt!
    (fast) gleichzeitig soll von PB0 - PB4 immer eine LEd hin und herbewegt werden mit 50ms.

    MFG
    Michael

  2. #42
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Doch, es wird wohl verstanden was du willst.
    Und der Weg zu der Lösung wurde hier auch schon mehrfach ausgetextet und erklärt, nur darfst du nicht erwarten, daß jemand hier für dich deine Fix-Fertig-Lösung programmiert...
    Disclaimer: none. Sue me.

  3. #43
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    795
    Zitat Zitat von Exodus
    Ich glaube ihr versteht mich nicht ganz!

    Ich will von PA0 - PA7 dass eine LED mit 25ms Takt hin un herbewegt!
    (fast) gleichzeitig soll von PB0 - PB4 immer eine LEd hin und herbewegt werden mit 50ms.
    Quasi ein Lauflicht?:
    +------+
    -+----+-
    --+--+--
    ---++---
    --+--+--
    -+----+-
    +------+
    Stellt den Zeitlichen verlaufvon PortA dar. (+) = LED AN! (-) = LED AUS!

    Wo liegt das Problem?
    Hier brauchst du sogar nur eine Variable die vom Timer gezählt wird!

    UND SIE MACHEN ES SORAG SO GUT WIE GLEICHZEITIG.. Ich denke die 3 µC-Zyklen die machen die Suppe nicht salzig!!!

    ALSO:

    Nochmal dein Vorhaben:
    Takt0: +------+
    Takt1: -+----+-
    Takt2: --+--+--
    Takt3: ---++---
    Takt4: --+--+--
    Takt5: -+----+-
    Und dann beginnt das Spiel wieder von vorne!!!

    Also machen wir uns eine Variable TAKT!
    Die Variable TAKT soll von 0 bis 5 hochgezählt werden.
    Anstatt dann weiter auf 6 gezählt zu werden, soll sie auf 0 zurückgestellt werden. Und der Vorgang beginnt von neu!

    Also machen wir das SO: Wir brauchen einen Timerinterrupt!
    Der Timer wird so eingestellt, dass er den Interrupt alle 25ms ausführt!

    Timerinterrupt{
    WENN TAKT KLEINER 5 IST,
    DANN ZÄHLE TAKT UM 1 HOCH
    ANSONSTEN SETZE TAKT AUF 0.
    }



    IM HAUPTPROGRAMM WIRD TAKT UNTERSUCHT!

    WENN TAKT GLEICH 0, DANN PORTA = 0b10000001
    WENN TAKT GLEICH 1, DANN PORTA = 0b01000010
    WENN TAKT GLEICH 2, DANN PORTA = 0b00100100
    WENN TAKT GLEICH 3, DANN PORTA = 0b00011000
    WENN TAKT GLEICH 4, DANN PORTA = 0b00100100
    WENN TAKT GLEICH 5, DANN PORTA = 0b01000010



    Ich denke sowas ist wirklich nicht schwierig zu realisieren....
    Gruß,
    Franz

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153
    warum funktioniert dass nicht!
    compare:
    cpi Takt, R18
    brlo 0x05
    clr R18
    inc R18
    reti

    MFG
    Michael

  5. #45
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Ich glaube ihr versteht mich nicht ganz!

    Ich will von PA0 - PA7 dass eine LED mit 25ms Takt hin un herbewegt!
    (fast) gleichzeitig soll von PB0 - PB4 immer eine LEd hin und herbewegt werden mit 50ms.
    Ich hab Dir am Anfang grob gesagt, wie das zu machen ist, man hat Dir Beispiele in C geschrieben, Du wolltest Assembler, ich hab Dir ein Assemblerbeispiel geschrieben wie man zwei LED's toggeln kann, was willst Du noch ?

    warum funktioniert dass nicht!
    compare:
    cpi Takt, R18
    brlo 0x05
    clr R18
    inc R18
    reti
    was soll uns das hier sagen ?

    cpi Takt,R18 ????

    was macht denn cpi ???
    vergleicht einen Register mit einer Konstante, was ist Takt ein Register ? R18 ist das eine Konstante????? wohl kaum hier wäre wohl cp besser oder?

    brlo 0x05 -> zur Adresse 0x05 springen?

    clr R18 -> setze R18 auf Null
    und direkt inc R18 inkrementiere R18 -> R18 bleibt immer 1

    und danach direkt reti?
    was ist mit SREG retten? nix? dann wunder Dich nicht das es nicht klappt

    Naja mach mal.....

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 5 von 5 ErsteErste ... 345

Berechtigungen

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

LiFePO4 Speicher Test