Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.

Nachrichten - thinkJD

1
Hallo Leute,
da hier immer mal wieder die Frage auftaucht, ob das RFM12 Modul auch von der Betty befüttert werden kann, Kann ich euch ne Antwort geben. Ja es geht und das erstaunlich zuverlässig.

Video vom fertigen Gerät: http://www.thinkjd.de/2011/05/moodpxl-v1-0-das-vorlaufige-projektende/
Ein par Details: ttp://www.thinkjd.de/2011/05/moodpxl-facts-teil-1/

Die reine Datenübertragung funktioniert so, wie in diesem Post beschrieben: http://www.mikrocontroller.net/topic/194471

Bei Fragen stehe ich gerne zur Verfügung!

Ach ja noch etwas

Gibt es eine einfache Möglichkeit Code in das Boop SVN zu bekommen?
Ich habe ein Trackbar-Control geschrieben, welches sicher auch für andere nützlich sein kann.

Gruß JD
2
Oh man ....
Jetzt wird mir das langsam peinlich ... Vielen Dank!
3
In meiner Make.conf gibt es nur zwei Zeilen. EIne mit den Subdirs und eine mit den SRCs. In der SRC-Zeile sind nur crt.c main.c global.c und buffer.c eingetragen.
Wo soll ich da meine Datei hinzufügen?

Gruß JD
4
Ich kann die Methoden von schon vorhandenen Dateien ändern und es wird kompiliert.
Nur wenn ich eine eigene Datei hinzufüge bekomme ich boop nicht mehr kompiliert.

Das ist meine mainmenu.c


#include "menu.h"
#include "testmenu.h"
#include "gamesmenu.h"
#include "moodpxlmenu.h"
#include "settingsmenu.h"
#include "toolsmenu.h"
#include "lcd.h"
#include "fonty.h"
#include "keyboard.h"
#include "global.h"
#include "flash.h"
#ifndef DEBUGMODE
#include "sounds.h"
#include "sound3.h"
#include "sound.h"
#endif

unsigned int testdata1, testdata2;


void show_info(void) {
unsigned short flashID;
unsigned short hwID;
flashID = getFlashID();
    draw_hexC (0, 30, flashID, LCD_COLOR_B, DRAW_PUT);

hwID = GetHWversion();
    draw_hexS (0, 38, hwID, LCD_COLOR_B, DRAW_PUT);

lcd_fill(0);
set_font(BOLDFONT);
    draw_string (0,0,"Info", LCD_COLOR_B, DRAW_PUT);
set_font(SMALLFONT);
draw_string(0,14,"Flash \n"
                 "Manuf. ID\n"
                 "Device ID\n"
                 "\n"
                 "Betty\n"
                     "HW Version\n", LCD_COLOR_B, DRAW_PUT);
    draw_hexC (65, 23, (flashID>>8), LCD_COLOR_B, DRAW_PUT);
    draw_hexC (65, 32, (flashID&0x00ff), LCD_COLOR_B, DRAW_PUT);
    draw_hexC (65, 59, (unsigned char)hwID, LCD_COLOR_B, DRAW_PUT);
    draw_string (0,77,"Boop", LCD_COLOR_B, DRAW_PUT);
#ifdef RELEASE
  //  draw_numU (65,86,SVNVERSION+1,0, LCD_COLOR_B, DRAW_PUT);
    draw_string (0,86,"SVN Release", LCD_COLOR_B, DRAW_PUT);
#else
    //draw_numU (65,86,SVNVERSION,0, LCD_COLOR_B, DRAW_PUT);
    draw_string (0,86,"SVN Revision", LCD_COLOR_B, DRAW_PUT);
#endif
    draw_string (0,95,__DATE__, LCD_COLOR_B, DRAW_PUT);
    draw_string (0,104,__TIME__, LCD_COLOR_B, DRAW_PUT);

set_font(SMALLFONT);

waitKeyUpDown();
}   // show_info


void show_credits(void)
{
lcd_fill(0);
set_font(BOLDFONT);
    draw_string (0,0,"Credits", LCD_COLOR_B, DRAW_PUT);
set_font(SMALLFONT);
    draw_string (0,14,"Netguy\tBasics\n"
                      "Telekatz\tBasics, IR/RF\n"
                      "Theborg\tFirst Steps, HW\n"
                      "Colibri\tFlash SW\n"
                      "Damaltor\tSupport\n"
                      "Pr0nbug\tFirst Steps\n"
                      "Asgart\tForum/Wiki\n"
                      "Spessi\tSurport, HW", LCD_COLOR_B, DRAW_PUT);

draw_string(0,95,"Und alle Anderen\n"
                     "die vergessen wurden.", LCD_COLOR_B, DRAW_PUT);

draw_string(0,120,"Thanks to Max Fleischer\n"
                      "for a great Cartoon!", LCD_COLOR_B, DRAW_PUT);
set_font(BOLDFONT);
    draw_string (8,150,"www.bettyhacks.com", LCD_COLOR_B, DRAW_PUT);
set_font(SMALLFONT);
#ifndef DEBUGMODE
playSound((unsigned char*)sound1_data, sound1_len);
waitSound();
playSound((unsigned char*)sound2_data, sound2_len);
waitSound();
#endif
waitKeyUpDown();
}   // show_credits

const struct MENU_ENTRY mainMenuEntries[] =
{
{ 0, (void*)&moodpxlMenu, MENUENTRY, "MoodPxl", "Turn it on!" },
{ 0, (void*)&testMenu, MENUENTRY, "TestStuff", "Various tests" },
{ enter_settings_menu, 0, FUNCENTRY, "Settings", "Change settings" },
{ 0, (void*)&toolsMenu, MENUENTRY, "Tools", "Tools" },
{ show_credits, 0, FUNCENTRY, "Credits", "Show Credits" },
{ show_info, 0, FUNCENTRY, "Info", "Show Info" }
};


const struct MENU mainMenu =
{
   NUM_OF_ELEMENTS (mainMenuEntries), (MENU_ENTRY*)&mainMenuEntries, "Main Menu"
};



Die moodpxl.c Datei befindet sich im selben Verzeichnis. Sie ist eine einfache Kopie der gamesmenu.c

#include "menu.h"
#include "tic_tac_toe.h"
#include "sokoban.h"
#include "connect4.h"

const struct MENU_ENTRY moodpxlMenuEntries[] =
{
{ &GameTicTacToe, 0, FUNCENTRY, "TicTacToe", "Play TicTacToe" },
{ &GameSokoban, 0, FUNCENTRY, "Sokoban", "Play Sokoban" },
{ &start_connect4, 0, FUNCENTRY, "Connect4", "Play Connect4" }
};


const struct MENU moodpxlMenu =
{
3, (MENU_ENTRY*)&moodpxlMenuEntries, "Games"
};



Zum Schluss noch die moodpxlmenu.h

#ifndef MOODPXLMENU_H
#define MOODPXLMENU_H

extern const struct MENU moodpxlMenu;

#endif



Beim kompilieren meckert mir der Linker folgendes an:

thumb.o:(.rodata+0x17594): undefined reference to `moodpxlMenu'


Ich bin echt ahnungslos.
5
Hallo Leute,
ich bin gerade dabei das Menü der Betty um ein paar eigene Punkte zu erweitern.

Um das Menüsystem zu verstehen, habe ich mir zuerst das testMenu kopiert und die Menüpunkte umbenannt (testMenuxx statt testMenu). In der Datei mainMenu.c habe ich in dem Menu Struct die folgende Zeile hinzugefügt:

{ 0, (void*)&testMenuxx,   MENUENTRY, "Test", "Test" },

Wenn ich boop jetzt kompilieren will, bekomme ich eine dieser Fehlermeldungen:

gui/mainmenu.thumb.o:(.rodata+0x175a8): undefined reference to `testMenuxx'

error: 'testMenuxx' undeclared here (not in a function)



Ich dachte zuerst ich hätte vergessen die Kopie der testmenu.h zu includieren, habe ich aber nicht ...
Kann mir jemand von euch bei diesem Problem weiterhelfen?
Gruß JD

P.S. Was hat es eigentlich mit den Direktiven auf sich?


#ifndef TESTMENU_H
#define TESTMENU_H

extern struct MENU testMenu;

#endif
6
Meine Güte ich muss echt Tomaten auf den Augen haben.
Danke jetzt klappt alles :-)

7
Gnah!
Kaum kann ich boop kompilieren, bahnt sich auch schon das nächste Problem an.
Beim bauen des LPCTools bekomme ich folgende Fehlermeldung:


/opt/arm/binarm-elf-as -mcpu=arm7tdmi-s -D --gstabs -mthumb-interwork -mfpu=softfpa -o crt.o crt.s
make: /opt/arm/binarm-elf-as: No such file or directory
make: *** [crt.o] Error 1


Was fehlt da noch? Ist meine Toolchain noch nicht komplett?
Gruß JD
8
THX!
Hatte den Pfad falsch gesetzt.
9
Hm jetzt fehlt noch eine lib ..

infrared/ir_sirc.thumbunopt.o infrared/ir_spaceenc.thumbunopt.o infrared/ir_lirc.thumbunopt.o -lc -lgcc
/opt/arm/bin/arm-elf-ld: cannot find -lc

ist das die glibc?
Das ist gar nicht so einfach, wenn man Visual Studio gewohnt ist :-)
10
Cool, danke für die Info.

Jop, der thinkJD in dem Thread. Ich habe ein bissel gekämpft, bis die Timings soweit waren, dann lief alles. Kopier dir mal den Code, schalte das Data Whitening aus und ab geht's.

P.S.
Nicht das es zu Missverständnissen kommt, ich habe das nicht alles selbst gemacht. Das meiste kommt von Oldies dem Threadstarter.
11
Er findet wohl die libmpc.2.dylib nicht. War das bei euch auch der Fall?


sed -n '4p' .svn/entries >> version.h
/opt/arm/bin/arm-elf-gcc -mcpu=arm7tdmi-s -Wall -mthumb-interwork -msoft-float -I/opt/arm/include -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc  -Itools -Os -c -MMD -MF ./.deps/main.o -o main.o main.c
dyld: Library not loaded: /opt/local/lib/libmpc.2.dylib
  Referenced from: /opt/arm/bin/../libexec/gcc/arm-elf/4.5.2/cc1
  Reason: image not found
arm-elf-gcc: Internal error: Trace/BPT trap (program cc1)
12
Letzteres :-)

Klar teile ich meinen Code, ich muss ds nur noch ein wenig aufbereiten.
Ist aber gar kein Problem. Der CC1100 kann das von haus aus. Man muss nur die Frequenz und das Syncword entsprechend einstellen. Der RFM12 erkennt das Syncword (0x2DD4) und schiebt brav die Daten aus dem FiFo :-)

Mal ne dumme Frage, ich habe die Toolchain ausgepackt, das Makefile angepasst aber der Compiler meckert immer noch. Fehlen da die Libs? Falls ja, wo bekomme ich die her?

Gruß JD
13
Klasse :-)
Jetzt fehlt nur noch ein lauffähiges LPC-Tool und ich wäre glücklich.
Hast du so etwas am start oder einen Patch, der das Port Problem unter OSX behebt?

Ich bin auch gerade dabei mich intensiv mit der Betty auseinander zu setzen.
Sie funkt mittlerweile auch zuverlässig mit dem RFM12 von Hope RF :-)
14
Hat sich erledigt.
Habe ei nen anderen USB-Seriell Adapter benutzt, jetzt geht alles.
15
Ne, RX und TX habe ich nicht vertauscht.

Sicherheitshalbe habe ich natürlich beide Einstellungen getestet und sogar gebrückt und ein paar Byte hingeschickt um die Funktion vom Interface zu testen.

Ich habe die Betty bei eBay gekauft, Scartadapter und Telefonadapter waren nicht dabei. Vielleicht hat der Vorbesitzer irgendwas geschrottet...