www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TV-B-Gone mit Attiny2313


Autor: adrian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
es geht darum das ich TV-B-Gone mit einem Attiny2313 aufbauen will.
Hardwaremäßig ist alles fertig, nur bei der Programmierung haperts 
gerade.
Anbei der Quellcode von TV-B-Gone.
AVR Studio gibt mir beim "compilen" bei der Textzeile n Error:

 // turn off output to IR emitter on 0C0A (PB2, pin 14) for offTime
  TCCR0B &= 0b11111000;  // CS02:CS00=000 to stop Timer0
  TCCR0A &= 0b00111111;  // COM0A1:0=00 to disconnect 0OC0A from PB2 
(pin 14)
  PORTB &= 0b11111011;   // turn off IR emitter on 0C0A (PB2, pin 14) in 
case it was High
  delay_ten_us(pgm_read_word(&powerTab[index].offTime));

Bei "TCCR0B &= 0b11111000" gibt es den ersten Error.
Ist da irgendein Fehler drin?


mfg Adrian

Autor: isputt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>This version of the firmware has the most popular 7 POWER codes for North 
>America
>(which is how many codes fit into the ATtiny2313 2KB flash memory).

Was willst Du damit, da geht kein einziger Fernseher hier aus?

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wortlaut des Fehlers?

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten Codes vom sind eh 37,4xx Khz.
Deswegen scheint mir das relativ zu sein.

Die Fehlerbeschreibung in AVR Studio ist "../tvbgone.c:606: error: 
'TCCR0B' undeclared (first use in this function)"

Autor: Florian Schütte (der_picknicker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab das grad mal durch meinen GCC gejagt und alles ist 
einwandfrei. habs jetzt natürlich nich auf nen Controller geladen, aber 
compiled hat er es. Hab mal das hex-file angehängt. Ist für tiny2313 mit 
8Mhz (Makefile für Infos auch dabei)

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du irgendwas am Quellcode geändert? evtl Kommentare rausgelöscht 
udn dabei irgendwas anderes mit entfehrnt???

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm...bei mir hat AVR Studi gemeckert. Aber ich werde deine Hex-File 
gleich mal verwenden.
Danke dafür :)

Nein ich habe nichts verändert. Alles so von der Seite kopiert.

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Makefile alles korrekt?
Wo hast du den code her? Seite?

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Im Makefile alles korrekt?
Nö, ich schätze der 2313 ist nicht definiert, sondern ein anderer 
Prozessor?

Autor: adrian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Makefile? :)
Ne Makefile gabs nich wirklich, hab die Txt selbst erstellt von 
http://www.tvbgone.com/mfaire/tvbgone/tvbgone_na.c hab ich den Code

Hmm...meinen Phillips krieg ich damit nicht aus. Zumindest leuchtet die 
LED auf Pin 14 =)
Den Schaltplan hab ich etwas abgeändert (Anhang)

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das war auch meine vermutung, deswegen frag ich.

Autor: isputt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In den 2313 passt es bei mir in allen Optimierungstufen mit AVRStudio 4 
nicht rein.

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem kenne ich. Das gleiche Problem wird bei meinem Wohnzimmer 
Rechner auch angezeicht. Da habe ich Windows 7 mit AVTR Studio 4.18 und 
WinAVR-20090313. Es werden alle Portnamen nicht erkannt. Auch DDRA usw 
werden nicht erkannt. Im Code wird TCCR0B auch nicht farbig angezeigt, 
richtig?

Ironischer Weise funktioniert es jedoch auf meinem Werkstatt-PC mit 
Windows XP SP3, und den gleichen AVR Studio- und WinAVR Versionen. 
Entweder liegts an Windows 7, oder irgendwas ist bei der Installation 
schief gegangen...

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
makefile ist eine datei, die du zum compilieren benötigst. dort werden 
u.A. grundlegende dinge wie prozessor-typ und taktfrequenz festgelegt. 
amch dich einfach mal ein bisschen schlau. google liefert genug infos. 
oder schau mal hier: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auch Windows 7 und da macht es Zicken :/
Genau! Das wird nicht farbig angezeigt.

Also dank deiner Hexfile leuchtet ja wenigsens die eine LED :)
Danke schonmal dafür

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm Moment mal, ich nehme alles zurück. Diene 
Neues_Textdokument__2_.txt lässt sich auf meinem Wohnzimmer PC trotzdem 
fehlerfrei kompilieren, obwohl die Register nicht farbig angezeigt 
werden... Es muss also an etwas anderem liegen...

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich arbeite hier auch mit Win 7 Prof. und WinAVR 20100110...alles 
gut...vielleicht mal das neuere WinAVR ziehen?...auf den tiny2313 würde 
es laut compiler auch passen (93,2% memory usage)

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huch, bei mir sagt er 111,0% full :)
Aber 0 Errors :c)

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh gehts jetz doch?
Ja vllt sollte ich mir die neuere Version mal ziehen.

Also ich hoffe ja jetz eigentlich das es funktioniert. Die LED auf Pin 
14 funktioniert jetz und wenn ich den Taster betätige geht sie auch 
aus...was aber noch nich UMBEDINGT weiß heißen kann. Weil der Taster ist 
ja auf GND + Reset gelegt. Bei meinem Phillips hier funktioniert es 
zumindest nicht. Muss ich morgen wohl testweise mal Saturn raiden ;) :D

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...111%...komisch...sollte eig. nicht sein, laut beschreibung am 
anfang der datei ist das ganze ja für den tiny2313 gemacht

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sagt denn das Oszi? Ist es ein normales signal, was da raus kommt?

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yo:

Build started 12.1.2010 at 22:01:10
avr-gcc  -mmcu=attiny2313 -Wall -gdwarf-2 -std=gnu99  -DF_CPU=1000000UL 
-Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD 
-MP -MT aaa.o -MF dep/aaa.o.d  -c  ../aaa.c
avr-gcc -mmcu=attiny2313 -Wl,-Map=aaa.map aaa.o     -o aaa.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  aaa.elf 
aaa.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
--change-section-lma .eeprom=0 --no-change-warnings -O ihex aaa.elf 
aaa.eep || exit 0
avr-objdump -h -S aaa.elf > aaa.lss

AVR Memory Usage
----------------
Device: attiny2313

Program:    2274 bytes (111.0% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


Build succeeded with 0 Warnings...

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey habe leider kein Oszi hier, aber ich werd morgen die Schaltung auf 
alle möglichen Signale untersuchen. Hoffentlich funzt das =)

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fällt grade auf, die LED flackert.
Da rattert der µC vllt die Frequenzen durch.
Kann aus der Programmierung leider auch nicht erkennen was diese LED nun 
anzeigen SOLL :-D

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF 
.dep/main.o.d main.c -o ma

Linking: main.elf
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF 
.dep/main.elf.d main.o --output m

Creating load file for Flash: main.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hex

Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
        --change-section-lma .eeprom=0 --no-change-warnings -O ihex 
main.elf main.eep || exit 0

Creating Extended Listing: main.lss
avr-objdump -h -S -z main.elf > main.lss

Creating Symbol Table: main.sym
avr-nm -n main.elf > main.sym

Size after:
AVR Memory Usage
----------------
Device: attiny2313

Program:    1908 bytes (93.2% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)



-------- end --------

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ohne Oszi kannst Du nur raten...


Sie wird ein Standard RC Signal senden. Die erste Flanke vollte dann 9ms 
haben...


Cool, WinAVR 4.3.3 ist schon draussen, evtl haben sie was optimiert. 
Sollte ich einfach mal drüber spielen :c)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paßt bequem mit folgenden Schaltern:

--std=gnu99
-fno-inline-small-functions
-Wl,--relax
--combine -fwhole-program

4.3.2
   text    data     bss     dec     hex filename
   1922       0       0    1922     782 test.out


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der neue WINAVR:
4.3.3
   text    data     bss     dec     hex filename
   1890       0       0    1890     762 test.out


Peter

Autor: Adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe vorhin gemerkt, das die "Anzeige-LED" auf dem Port vom Transistor 
war und umgekehrt.
Das kuriose flackern der LED war also warscheinlich das Aussenden der 
Frequenzen was man sehen konnte.
Habs vor ein paar Minuten umgelötet und getestet...nix passiert...
Außerdem wurd der Transistor VERDAMMT HEISS! Liegt wohl an dem zu gering 
bemessenen Vorwiderstand und dem (nicht vorhandenen) Vorwiderstand der 
IR-LED.

Werde die Schaltung nachher nochmal aufm Steckbrett aufbauen. Schätze 
als Vorwiderstand für den Transistor ca n K nehmen und die Dioden mit 
470. Werde auch VERSUCHEN die EU-Codes einzuprogrammieren, da jetz noch 
die Ami-Codes drin sind.
Falls ich das nicht hinkriege muss mir hier vllt jemand helfen ;)

Autor: Florian Schütte (der_picknicker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IR-LED braucht nicht unbedingt nen Vorwiederstand (gehe davon aus das du 
das ganze mit 3 V betreibst). Aber den Transistoren solltest du 
unbedingt einen viel größeren Wiederstand gönnen. so ca. das 80fache. 
versuchs mal mit 10K.
Wieso nimmst du nicht die original-schaltung (du sagst ja du hast sie 
abgeändert, wo hast du die überhaupt her)?

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee betreibe die Schaltung mit 5 V.
Falls es euch interessiert, das ist der Link zur Schaltung.
http://www.milanhille.com/bilder/tvbgone/tvbgone.png

Autor: adrian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sooo, ich habe den Code mal etwas abgeändert.
Nur mein Compiler macht wieder zicken.
Kann mir Jemand die Hex mal hochladen von meinem Code?

Vllt läufts ja dann =)

mfg

Autor: Klaus2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...wie wärs mit compiler-fehlersuche? :) das froum ist ja kein 
onlinecompiler, oder? :)

Klaus.

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das weiß ich :) Hab ich weiter Oben schon alles beschrieben.
Er gibt in meinem AVR Studio Fehlermeldungen raus und bei allen Anderen 
komischerweise nicht...

Deswegen frage ich ja ;)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da würde ich als Compiler auch rumzicken.

Ein Compiler will immmer ein *.c und kein *.txt.


Peter

Autor: adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C, kein ASM etc? ;)

Nein das weiß ich, aber man kann ja den Code einfach in den Compiler 
kopieren, ne ;)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
// This function delays the specified number of 10 microseconds
void delay_ten_us(unsigned long int us) {
  unsigned long int timer;
  const unsigned long int DelayCount=6;  // this value was determined by trial and error

  while (us != 0) {
    // Toggling PD0 is done here to force the compiler to do this loop, rather than optimize it away
    for (timer=0; timer <= DelayCount; timer++) {PIND |= 0b0000001;};
    us--;
  }
}

Das is einfach nur Humbug. Der Kommentar ist falsch, der Ansatz noch 
falscher.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
adrian schrieb:
> Nein das weiß ich, aber man kann ja den Code einfach in den Compiler
> kopieren, ne ;)

Hä ???

Ich weiß ja nicht, womit Du kompilierst.

Aber ich benutze den WINAVR und der will mindestens ein File haben und 
das muß *.c heißen.


Peter

Autor: öftersda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal kurz gefragt an der interresanten Diskuson vorbei

hat einer einen für die Brd funktionierenden hex file den er posten kann

für atiny2113


gruß

Autor: petra_2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mich würde das HEX für den 2313 auch interssieren ...

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.