display22 - Labor für Interaktion

Archive for the 'Wiring' Category

Workshop “Interactive Devices”

Dienstag, Mai 8th, 2007

Arduinoprogrammierung, Breadboards und elektronische Bauteile im Rahmen der Workshop-Woche “digitale Perspektiven” des Studiengangs Medien-Design / Zeitbasierte Medien an der FH Mainz.

Workshop Interactive Devices

Allgemeines und Referenz

Inspiration und Anleitungen

Technology Sketches

Interessante Projekte

FBAS (PAL) Composite Signalerzeugung

Montag, Dezember 4th, 2006

Wie sollte ein FBAS Signal aussehen?

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

http://del.icio.us/display22/tvout

Tips zur Signalerzeugung, Timingfragen, Interrupts

JAVA:
  1. /* Delay for the given number of microseconds.
  2. * From D.Mellis for Arduino
  3. * Assumes a 16 MHz clock.
  4. * Disables interrupts, disrupts millis() if used frequently
  5. * note: digitalWrite() executes in 2.5 microseconds
  6. */
  7. void delayMicroseconds(unsigned int us) {
  8.     // calling avrlib's delay_us() function with low values (e.g. 1 or
  9.     // 2 microseconds) gives delays longer than desired.
  10.     //delay_us(us);
  11.  
  12.     // for a one-microsecond delay, simply return.  the overhead
  13.     // of the function call yields a delay of approximately 1 1/8 us.
  14.     if (--us == 0)
  15.     return;
  16.  
  17.     // the following loop takes a quarter of a microsecond (4 cycles)
  18.     // per iteration, so execute it four times for each microsecond of
  19.     // delay requested.
  20.     us <<= 2;
  21.  
  22.     // account for the time taken in the preceeding commands.
  23.     us -= 2;
  24.  
  25.     // disable interrupts, otherwise the timer 0 overflow interrupt that
  26.     // tracks milliseconds will make us delay longer than we want.
  27.     cli();
  28.  
  29.     // busy wait
  30.     __asm__ __volatile__ (
  31.         "1: sbiw %0,1" "\n\t" // 2 cycles
  32.         "brne 1b" : "=w" (us) : "0" (us) // 2 cycles
  33.     );
  34.  
  35.     // reenable interrupts.
  36.     sei();
  37. }


das Problem beim Timing von Interupts beim AVR ist, das der beim Interupt gerade laufende Befehl noch zu Ende abgearbeitet wird. Das kann dann 1, 2 oder 3 Takte dauern. Das habe ich in einem Video-Projekt mal folgendermassen gelöst. -- http://www.mikrocontroller.net/topic/27194#206416

@willi: Dein Ansatz ist schon fast perfekt, die Unsauberkeit mit den verdrehten Rücksprungadressen hast du ja selbst erwähnt. Ich habe das Problem dadurch gelöst dass ich den avr kurz (ca. 1us) vor dem nächsten Zeilenbeginn schlafen schicke, damit kommt der nächste Int. bzw. Syncbeginn mit einer konstanten Verzögerung. -- http://www.mikrocontroller.net/topic/27194#206419

Die Vor, Haup und Nachtrabanten sind ja nun sequenziell immer gleich bei der V-Sync. Diese müssen nun auch immer genau 1024 takte ergeben. das sieht so aus: -- http://www.4freeboard.to/board/thread.php?postid=165811#post165811 -- http://www.4freeboard.to/board/thread.php?postid=165845#post165845

Alarm

Donnerstag, Oktober 5th, 2006

Aus reiner Funktionslust ist die Studie Alarm entstanden. Nachdem wir unsere Überseebestellung von sparkfun.com erhalten haben, wollten wir unsere neuen technischen Errungenschaften verbauen und ausprobieren. Der Aufbau besteht aus einem wiring-board, einem Breadboard mit aufgebautem Bluetooth Modem, einem Ultraschall-Entfernungsmesser und einem alten PC-Lautsprecher.

Flashlight Pong

Donnerstag, September 21st, 2006

Den Videospieleklassiker Pong adaptieren und als Eingabegeräte Taschenlampen statt Drehregler verwenden. Konkret soll Flashlight Pong im Eingangsbereich des Institutes auf dem dort installierten Display spielbar sein.

videoclip