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
>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?
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)"
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)
hast du irgendwas am Quellcode geändert? evtl Kommentare rausgelöscht udn dabei irgendwas anderes mit entfehrnt???
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.
>Im Makefile alles korrekt?
Nö, ich schätze der 2313 ist nicht definiert, sondern ein anderer
Prozessor?
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)
In den 2313 passt es bei mir in allen Optimierungstufen mit AVRStudio 4 nicht rein.
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...
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
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
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...
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)
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
Hm...111%...komisch...sollte eig. nicht sein, laut beschreibung am anfang der datei ist das ganze ja für den tiny2313 gemacht
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...
Hey habe leider kein Oszi hier, aber ich werd morgen die Schaltung auf alle möglichen Signale untersuchen. Hoffentlich funzt das =)
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
-------- 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 --------
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)
Paßt bequem mit folgenden Schaltern: --std=gnu99 -fno-inline-small-functions -Wl,--relax --combine -fwhole-program
1 | 4.3.2 |
2 | text data bss dec hex filename |
3 | 1922 0 0 1922 782 test.out |
Peter
Der neue WINAVR:
1 | 4.3.3 |
2 | text data bss dec hex filename |
3 | 1890 0 0 1890 762 test.out |
Peter
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 ;)
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)?
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
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
...wie wärs mit compiler-fehlersuche? :) das froum ist ja kein onlinecompiler, oder? :) Klaus.
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 ;)
Da würde ich als Compiler auch rumzicken. Ein Compiler will immmer ein *.c und kein *.txt. Peter
C, kein ASM etc? ;) Nein das weiß ich, aber man kann ja den Code einfach in den Compiler kopieren, ne ;)
1 | // This function delays the specified number of 10 microseconds
|
2 | void delay_ten_us(unsigned long int us) { |
3 | unsigned long int timer; |
4 | const unsigned long int DelayCount=6; // this value was determined by trial and error |
5 | |
6 | while (us != 0) { |
7 | // Toggling PD0 is done here to force the compiler to do this loop, rather than optimize it away
|
8 | for (timer=0; timer <= DelayCount; timer++) {PIND |= 0b0000001;}; |
9 | us--; |
10 | }
|
11 | }
|
Das is einfach nur Humbug. Der Kommentar ist falsch, der Ansatz noch falscher.
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
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ß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.