-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
PIC18F4620 Problem: scrambled display GLCD
TK. replied to Gertius's topic in Testing/Troubleshooting
Hi Christian, you need to relocate the font to another location, so that it doesn't overlap with the program code. Here a quick & dirty solution (I will provide a proper solution for C programs later) copy the mios_glcd_font.inc file from the MIOS release into your application directory, rename it to mios_glcd_font.asm add following code to the file header: LIST P=PIC18F4620, R=DEC DEFAULT_FONT code FONT_ENTRY MACRO width, height, x0, char_offset dw ((height) << 8) | (width), ((char_offset) << 8) | (x0) ENDM [/code] change the "org" (start address) from 0x7cfc to 0xfcfc add a "END" at the file footer add the new .asm file to the MAKEFILE.SPEC (behind the MK_SET_OBJ statement) change the font pointer within the Init() routine: [code] void Init(void) { MIOS_GLCD_FontInit(0xfcfc); } if you are working under MacOS or Linux, type "perl tools/mkmk.pl MAKEFILE.SPEC; make", under DOS just type "make" Hope this is all (I haven't tried it) Some more fonts and icons can be found within the midibox_lc project Best Regards, Thorsten. -
Hallo, es ist ja eigentlich schon alles fertig programmiert, Du musst die MIDIbox CV Applikation nur noch konfigurieren: in in main.asm die Zeilen ; use PORTA and PORTE (J5 of the core module) for 8 additional gate outputs #define ENABLE_J5 0 ; ; define the AOUT interface which is used here: ; 1: one MBHP_AOUT module ; 2: up to 4 (chained) MBHP_AOUT_LC modules ; all other values invalid! #define DEFAULT_AOUT_INTERFACE 1 [/code] umaendern in: [code] ; use PORTA and PORTE (J5 of the core module) for 8 additional gate outputs #define ENABLE_J5 1 ; ; define the AOUT interface which is used here: ; 1: one MBHP_AOUT module ; 2: up to 4 (chained) MBHP_AOUT_LC modules ; all other values invalid! #define DEFAULT_AOUT_INTERFACE 2 und dann ein neues main.hex nach dieser Anleitungen bauen: http://www.ucapps.de/howto_tools_mpasm.html Gruss, Thorsten.
-
I guess that the parameter handler behind CS_MENU_ButtonInc and CS_MENU_ButtonToggle will never switch to values > 0x7, since this would exceed the defined maximum value. I cannot tell you immediately how to enahnce your code so that it works for that what you want to do under all circumstances (e.g. + the optional CC parameter sent, etc...) - I can only write, how I would do this: - in cs_menu_tables.inc, search for "CS_SID_FILTER_CHANNELS" and set the max value to 0x0f (instead of 0x07) - in cs_menu_p2r_r2p.inc, search for CS_MENU_P2R_FILTER_CHN and CS_MENU_R2P_FILTER_CHN, duplicate the code (since it is used for *_MOD as well), and change the masks (replace 0xf8 by 0xf0 and 0x07 by 0x0f) This should be all (I haven't tried this...) Best Regards, Thorsten.
-
It shouldn't be a big problem, but I never tried this due to lack of time Best Regards, Thorsten.
-
You can assign any number to the second byte - sometimes this is useful for more flexible meta events Best Regards, Thorsten.
-
I really would like to see such build notes (what can be made wrong, what can be made right, how to build a simple DINX1 module) in the Wiki! :) Best Regards, Thorsten.
-
Hallo, Danke, freut mich dass es Dir gefaellt! :) die Pins der Encoder sind in mios_tables.inc definiert, und die Funktionen werden in cs_menu_enc.inc und cs_menu_enc_table.inc gemapped - allerdings sind Aenderungen an dieser Stelle nicht so ohne weiteres durchzufuehren, man muss sich ein wenig durch den Source Code wuehlen (siehe auch http://www.midibox.org/forum/index.php?topic=7233.msg50901#msg50901) Das Mapping der Buttons und LEDs laesst sich dafuer wesentlich einfacher abaendern - die Zuweisungstabellen stehen in cs_menu_io_tables.inc Gruss, Thorsten.
-
Wenn Du die schwarzen Balken siehst, lohnt es sich evtl. ein wenig weiterzuexperimentieren. Hast Du denn schon MIOS aufgeladen? (das vermisse ich in Deiner Beschreibung) Ohne MIOS wird das Display nicht initialisiert Gruss, Thorsten.
-
Hi Alkex, the usage of this function is very easy - each time you are calling it, a new random number will be put into SEQ_RANDOM_SEED_L and SEQ_RANDOM_SEED_H - you can extract a bit or a bitfield from these registers like you want. E.g., if you need a 7bit value, write: SET_BSR SEQ_BASE movf SEQ_RANDOM_SEED_L, W, BANKED andlw 0x7f ; masks 7bit from the low-byte [/code] In MBSEQ V3, I've optimized the function in following way: [code] ;; -------------------------------------------------------------------------- ;; This function generates a new random number ;; OUT: new random number in SEQ_RANDOM_SEED_[LH] ;; -------------------------------------------------------------------------- SEQ_CORE_GenRandomNumber SET_BSR SEQ_BASE movf SEQ_RANDOM_SEED_L, W, BANKED mulwf SEQ_RANDOM_SEED_H, BANKED movf TMR0L, W addwf PRODL, W movwf SEQ_RANDOM_SEED_L, BANKED movlw 0x69 addwfc TMR1L, W addwfc PRODH, W movwf SEQ_RANDOM_SEED_H, BANKED return by using the values of two different timers, the randomness is higher Best Regards, Thorsten.
-
Did you also measure the voltages directly at the LPT port? Best Regards, Thorsten.
-
The voltages don't look correct. General proposal: buy 3 Transistors, 5 x 74HC14, 1 LM317 (some are indented as replacement) 1) Unmount the transistor and the 74HC14s 2) Disconnect the batteries at J1 3) Mount a new 74HC00 into the socket of IC3 4 ) connect the batteries 5) Check if the Vdd and Vpp LED can be toggled from P18 6) Check if the voltage at the cathode of D2 toggles between 5V/0V together with the red Vpp LED 7) Solder T1 8) check if MCLR# toggles between ca. 0.5V and ca. 12.5V together with the red Vpp LED If one of these test fails - don't continue! But try to get it passing first (check soldering, check right orientation of ICs, diodes, transistor), otherwise you will fry some components again Best Regards, Thorsten.
-
Testing is only possible with a scope, but I would say: this is a TTL oscillator Best Regards, Thorsten.
-
Yes, just use the MIDIbox LC firmware. You could attach a graphical 240x64 display - even the slow ones - it will show some nice graphics. Otherwise you will have to use two 2x40 LCDs Best Regards, Thorsten.
-
Did you build a new .hex file from your modified code, and uploaded it to your MIDIbox? Because it sounds like the default meta handler is still running - it sends SysEx Best Regards, Thorsten.
-
Hi Ludo, do you allow me to bring a subset of your pictures into the MIDIbox Gallery? :) Best Regards, Thorsten.
-
Why do you post such questions in the news in an article which introduces a new MIOS version? Of course, it is very likely that it is a bug in your DIN module wiring, or what did you expect? That 100red of people are not able to use the Depth ENV encoder and never reported this? We have a special forum section where you can ask for help, it's called "Troubleshooting" and not "News" Best Regards, Thorsten.
-
Hi Simone, here is a description, how you can troubleshoot this without opening the case (use MIDIO128): http://www.midibox.org/dokuwiki/doku.php?id=din_module if MIDIO128 doesn't send events on all encoders, then you have to open the case Best Regards, Thorsten.
-
this message tells you that the installation of bootloader v1.2 was successfull (see documentation) Best Regards, Thorsten.
-
das war evtl. toetlich fuer das LCD - aber vielleicht hast Du es auch schon beim vorigen Versuch "abgeschossen". :-( Man kann die Leitungen nicht so ohne weiteres durchmessen, man benoetigt das Datenblatt um die Pins auf anhieb so anzuschliessen, dass nichts kaputt geht Gruss, Thorsten.
-
Generell gilt: Fuer alle assemblerbasierenden Applikationen benoetigt man MPLAB, das leider nur unter Windows laeuft (oder unter Linux via Wine). Doch es gibt eine Bastelloesung, mit der man MPASM Code so zurechtbiegen kann, dass er auch mit GPASM kompilierbar ist, das u.A auch fuer den Mac verfuegbar ist: http://www.midibox.org/dokuwiki/doku.php?id=compiling_the_midibox_source_on_linux&s=mpasm. Die C basierenden Applikationen lassen sich mit SDCC/GPASM kompilieren, beides laeuft auch auf dem Mac. Falls Du mit dieser Info nichts anfangen kann, dann bitte einfach jemanden, der MPLAB unter Windows installiert hat, ob er Dir ein neues .hex File nach Deinen Wuenschen bauen kann. Wenn Du keine Anpassungen am Source Code vornehmen kannst, sind Taster/Encoder/LCD unverzichtbar - es hat noch niemand einen Java (oder aehnlich) basierenden Editor fuer die MIDIbox CV programmiert. Ich habe alles dafuer vorbereitet (die Box ist ueber SysEx konfigurierbar), ich bin jedoch etwas zu bequem, um einen Editor fuer etwas zu programmieren, was ich auch mal auf die Schnelle im On-Screen Menue oder im mbcv_presets.inc File einstellen kann... :-/ Gruss, Thorsten.
-
it's fine - as you can see, now you should have the possibility to send any MIDI event without asking for code snippets :) Best Regards, Thorsten.
-
MIDIbox64E can do this since more than 5 years... I don't know for how long those "fancy controllers" exist? Just assign a button to one of the following SFBs: FF 08 40 | Select Parameter with encoder during button is pressed FF 08 41 | Select Group with the first, Bank with the second, Patch with the third | encoder during button is pressed Best Regards, Thorsten.
-
Problem : bankstick shared between SID and FM box
TK. replied to Ixox's topic in Testing/Troubleshooting
Hi Xavier, yes, I remember that this was reported by Seppoman (?) some time ago. I still haven't searched for the cause yet, but in general I think that this is a "low priority" issue. You can clear the BankStick with following C program: Init() { unsigned int addr; for(addr=0; addr<32768; ++addr) MIOS_BANKSTICK_Write(addr, 0x00); } [/code] Best Regards, Thorsten. -
This resistor is very important, because without T1 would connect it with ground -> short circuit (T1 would be destroyed). Since the impedance of the MCLR# input is much higher than 1k, most voltage will drop over MCLR#->ground and not over the 1k resistor when T1 is open When T1 is closed, nearly the full voltage will drop over the 1k resistor, and MCLR# should be ca. 0.7V Best Regards, Thorsten. Which voltage do you measure without T1?