www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TV-B-Gone Dauerdurchlauf


Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey,

Vielleicht kennt ja jemand von euch die TV-B-Gone Fernbedienung von 
LadyAda..

Ich habe mir die v1.2 nachgebaut und habe mich mal gefragt, ob es 
mögliche wäre mit einem Jumper den Code im Dauerdurchlauf laufen zu 
lassen. Wenn der Kontakt vom Jumper geschlossen wird, soll der Code im 
Dauerdurchlauf gesendet werden, wenn der Kontakt aber offen ist, soll 
das ganze normal mit dem Schalter funktionieren.

Nun zu meiner Frage, wie lässt sich das ganze realisieren? Ich habe 
bisher das ganze nur mit einem Jumper zwischen RST und GND versucht, hat 
aber leider nicht funktioniert, oder muss ich den Code dazu ertwas 
ändern?

Hat jemand eine Idee, wie sich das ganze verwirklichen lässt?

Gruß Jonas

Autor: Thomas K. (thkusch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Unterstütz der Code diese Funktion? Was wie ein Jumper??

Ansonsten eine kleine Schaltung bauen (NE555), die einen periodischen 
Druck auf die Taste simuliert.

Gruss
Thomas

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe bisher das ganze nur mit einem Jumper zwischen RST und GND versucht

Redet euch dochnit immer um Kopf und Kragen ;)
Was solles bringen, den µC dauerhaft im Reset zu halten?

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Jumper ist ein kleines Stück Metall in Plastik, dass zb zwei 
Stiftleisten verbindet.

Jap, dass habe ich dann auch gemerkt.

Ich würde einfach gerne, sobald der Code ausgelaufen ist und der Jumper 
den Konatkt geschlossen hält soll der Code wieder ausgeführt werden. Ist 
der Kontakt aber offen so kann nur manuell der Code wieder ausgeführt 
werden.

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

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsste man sich jetzt den Code ansehen, wie er geschrieben ist.
Ist er schlampig geschrieben, könnte es schon reichen parallel zum 
Taster einfach einen Schiebeschalter (oder einen Jumper) zu schalten. 
Ist er überbrückt simuliert er Dauerbetätigung des Tasters. Wenn die 
Software das als 'mach weiter' interpretiert, hast du schon gewonnen.

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch drinn, der Loop, ich verstehe es nicht!
Du verwendest doch Version 1.2, oder?
Dann beschäftige Dich bitte nochmal damit
http://www.ladyada.net/make/tvbgone/download.html
Files for v1.2 
Here are the hardware and firmware files for v1.2, distributed under Creative Commons 2.5 Attribution, Share-Alike

•Schematic and Layout files in Eagle format
•Schematic in PNG
•Firmware for AVR-GCC
Caitsith modded the v1.2 firmware to support 'looping' if its set to US or EU only, check it out

  // determine region
#ifdef WORLD
  if (PINB & _BV(REGIONSWITCH)) { //Region switch determines which region to use. Loop is hardcoded.
    region = US; // US
    DEBUGP(putstring_nl("US"));
  } else {
    region = EU;
    DEBUGP(putstring_nl("EU"));
  }
#else
  if (PINB & _BV(REGIONSWITCH)) { //Region switch determines whether to loop or not, region is hardcoded.
    Loop = 0;
  } else {
    Loop = 1;
  }
  #ifdef US_CODES
    region = US; // US
    DEBUGP(putstring_nl("US"));
  #else
    region = EU;
    DEBUGP(putstring_nl("EU"));
  #endif
#endif

und später in main() am Ende
  } while (Loop == 1);

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Jumper sieht jetzt so aus, erst wenn ich den Kontakt öffne, 
wird der Code gestartet.

Zum Code an sich kann ich nicht viel sagen, da ich eigentlich fast nur 
mit dem Arduino arbeite und mich nicht gut mit dem Code bzw der Sprache 
aus.

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich jetzt den Code modifiziern oder geht das ganze auch nur mit 
Hardware und ohne Timer?

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du Dir den Quellcode mal angesehen?
Kannst Du zwischen US-Code und EU-Code umschalten?
Hast Du einen Widerstand am PIN PB1?
Ist WORLD = 1 gesetzt?
Ist im Makefile NA-Code = 1 gesetzt?
Ist EU_CODE gesetzt?

NEIN!, Was steht im Makefile?
# Target file name (without extension).
TARGET = tvbgone
#NA_CODE = 1

Da ist eine Raute davor, also kein "NA_CODE = 1" . Das wiederum heisst, 
das der Pulldowm am PB1 nicht zwischen EU und AMILAND umschaltet, 
sondern zwischen Einzel- und Dauerfeuer.

Konnte man das nicht aus meinem Post oben herauslesen oder denke ich nur 
wieder mal so quer? Dann sorry.

Wenn Du also den CAITSITH Mod der V1.2 geflashed hast, musst Du Pin B1 
auf Masse legen, damit Du Dauerfeuer hast.
Zeile 266:
do {  //Execute the code at least once.  If Loop is on, execute forever.

>

>Muss ich jetzt den Code modifiziern oder geht das ganze auch nur mit
>Hardware und ohne Timer?

Nichts von alledem, PB1 beim Start mindestens 5ms an GND.


@all

Ist das wirklich soo schwer? Was ist ein "Arduino" und warum muss man 
daher nichts mit Code und der Sprache am Hut haben? Was muss man denn 
dann mit einem "Arduino" machen, wenn nicht programmieren?

Man, ich kenn mich doch auch nicht soo doll aus.
GEschweige, das ich das Projekt schonmal compiliert habe. Aber das sieht 
man doch, was die hier mit dem TV-BE-GONE Dingens machen. Bin ich der 
einzige, was seht ihr? Auf welchen Schwierigkeitsgrad stuft ihr das ein?

Ich finds jedenfalls blöd, das immer mehr nur irgentwas nachbauen, ohen 
auch nur das geringste Interesse an der Sache zu zeigen.

Axelr.

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

Bewertung
0 lesenswert
nicht lesenswert
Axel Rühl schrieb:

> @all
>
> Ist das wirklich soo schwer?

Ernsthafte Antwort?

Nein. WEnn man das schon mal gemacht hat, ist es eine Sache auf 2 
Minuten.

> Was ist ein "Arduino" und warum muss man
> daher nichts mit Code und der Sprache am Hut haben?

Sprache stimmt so nicht. Auch für den Arduino schreibt man Programme. 
Sieht sogar sehr ähnlich wie C aus.

Ansonsten ist ein Arduino eine Kombination aus definierter Hardware und 
einem Programmiersystem, gedacht für Leute die sonst nichts mit 
Programmierung am Hut haben. Künstler, etc ...

> man doch, was die hier mit dem TV-BE-GONE Dingens machen. Bin ich der
> einzige, was seht ihr? Auf welchen Schwierigkeitsgrad stuft ihr das ein?

Um ehrlich zu sein, tendiere ich immer mehr dazu, mich aus den Threads 
rauszuhalten, bei denen es im Wesentlichen darum geht, dass wieder mal 
jemand Wollen mit Können verwechselt. Wenns möglicherweise eine einfache 
Möglichkeit gibt, die übersehen wurde, geb ich mal meinen Senf dazu. 
Aber ansonsten lass ich es.

Ich will auch vieles. Aber wenn ich es nicht kann, dann hab ich nur 2 
Möglichkeiten: darauf verzichten oder lernen.

> Ich finds jedenfalls blöd, das immer mehr nur irgentwas nachbauen, ohen
> auch nur das geringste Interesse an der Sache zu zeigen.

Du sagst es.


(Und tschüss in diesem Thread. Ich bleib meiner Maxime treu)

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich habt ihr recht und ich führe mich hier so auf, aber ich weiß 
halt nicht wie das geht und habe mich auch nicht mit dem Code 
beschäftigt. Ich wollte das ganze "nur mal so" kurz erledigen, da ich 
nur aus Spaß den TV-B-Gone nachgebaut habe und mich eigentlich auch 
nicht weiter mit beschäftigen wollte.

Ich habe wie nach dem Schaltplan den 10K Widerstand zwischen PB1 und GND 
geschaltet, wenn ich das richtig verstanden habe muss ich jetzt noch den 
CAITSITH Mod der V1.2 auf den Chip flashen. Kann mir entweder die 
HEX-File aus den Daten machen oder mir eine Erklärung geben in der es 
beschrieben steht?

Ich denke ich unterschätze das grad und merke, dass ich erst noch viel 
lernen muss um das von selbst zu verstehen und zu bauen.

Jonas

Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch die "normale" Version 1.2 verwenden, musst aber in der 
"main.c" die lokale Variable "LOOP" auf "1" setzen und das ganze neu 
compilieren.
int main(void) {
  uint16_t ontime, offtime;
  uint8_t i,j, Loop;
  uint8_t region = US;     // by default our code is US
  
  //Loop = 0;              // by default we are not going to loop
  Loop = 1;                // now we are going into loop
  TCCR1 = 0;       // Turn off PWM/freq gen, should be off already
  TCCR0A = 0;
  TCCR0B = 0;

hexfile mit gesetztem "LOOP-Bit" ungetestet im Anhang.

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, werde es gleich mal flashen...

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay habe mal den Code auf den Chip geflasht und dann ganze getestet. 
Leider ohne Erfolg...

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Janee, ich habe auch keine Ahnung, was da jetzt nicht geht bei Dir, 
sorry.

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Problem, ich werde mich jetzt mit dem 555 Timer bauteil befassen 
und diesen in die Schaltung einbauen, aber danke euch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.