- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 49

Thema: HaikuVM A Java VM for ARDUINO and other micros using the leJOS runtime.

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #36
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2013
    Beiträge
    12
    Zuerst einmal:
    Eigentlich müsste die erste Zuweisung richtig sein. Denn wenn man stattdessen "TWCR = (1 << TWINT)..." schreibt ist die Bedingung immer "true", auch wenn ich nichtmal eine Kabelverbindung habe. Die zweite Zuweisung wird ja leider nie aufgerufen, aber ich habe im Wissensbereich (oder im Mircrcontroller-Forum?) gelesen, dass TWCR zurück gesetzt wird, indem TWINT durch "TWCR = (1<<TWINT).." gelöscht wird. Ich habe das aber auch nicht so ganz verstanden..

    Jetzt etwas neues:
    Meine TWI-Slave-Lib funktioniert jetzt endlich. Sie basiert aber auf der Interrupt-Routine. Ich habe erst versucht, dass eine Methode im Java Programm aufgerufen wird, wenn etwas passiert. Dies scheint aber nicht zu funktionieren.

    Wenn die Interrupt-Routine nicht auf das Java-Programm warten muss, gibt es keinen Bus-Error mehr und alles funktioniert.

    So funktioniert es nun:
    Empfang von Daten:
    Jetzt werden alle Daten im C-Programm empfangen und in einen Buffer geschrieben, welcher dann an das Java-Programm weiter gegeben wird. Die Interrupt-Routine wird nicht unterbrochen, da dass Java-Programm die Abfrage des Buffers übernimmt.
    Senden von Daten:
    Wenn ein Request eingeht, wird eine Java Methode ausgelöst. Gleichzeitig geht's weiter: Wenn der txBuffer leer ist, wird ein bestimmtes Zeichen (-1) verschickt, woran der Master erkennen soll, dass der Slave die Daten noch nicht parat hat. Der Master muss solange den Slave abfragen, bis dieser was anderes als -1 schickt.
    Wenn das Java Programm dann irgendwann mal den Buffer gefüllt hat wird dieser verschickt.
    Der nächste Request kann ausgelöst werden.

    Die Slave-Lib funktioniert jetzt wunderbar. Der Quellcode ist aber überhaupt nicht schön. Das muss noch behoben werden. Auch möchte ich noch ein Funktions-Diagramm machen, welches zeigt, wie der Master handeln sollte, damit alles funktioniert.


    Mir ist da grad etwas eingefallen:
    Früher hab ich ja im Interrupt eine Variable auf 1 gesetzt und dann mit einer Schleife solange gewartet, bis diese 0 ist. Das Java-Programm sollte sie nämlich abfragen und dann auf 0 ändern. Das ganze kann doch gar nicht funktionieren: Denn wenn der Interrupt läuft, kann ja gleichzeitig kein anderer Code ausgeführt werden. Der Interrupt hebelt somit das Java-Thread-System aus.


    Jetzt hab ich mein erstes Teil-Ziel erreicht Ich würde die Library gerne Hochladen, aber mein Internet gibt zurzeit den Geist auf (Danke Vodafone!!!). Vielleicht wird es heute Abend was.
    Edit: Hier ist sie: http://dl.dropbox.com/u/54743553/Archiv.zip
    Eine Frage bleibt aber noch: Muss ich, damit ich die "Serial.println.." am PC auslesen kann, die Arduino IDE benutzen, oder gibt es dafür ein anderes Programm?

    Vielen Dank
    Geändert von janvp (05.04.2013 um 13:05 Uhr)

Ähnliche Themen

  1. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  2. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 11:50
  3. Runtime Error! in AVR Studio
    Von NemesisoD im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 05.01.2007, 19:30
  4. (LEGO MINDSTORMS) lejos Klassen Facharbeit
    Von George Dorn im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 01.03.2006, 16:29
  5. lego, lejos, logitech ;)
    Von maze2k im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 7
    Letzter Beitrag: 21.05.2005, 22:21

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests