Welcome! Log In Create A New Profile

Advanced

Megatronics V2.0 en LCD 16x2 Marlin Firmware

Posted by e.noorlander 
Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 04, 2014 04:31PM
Hi RepRappers,

ik heb een vraag i.v.m. de Configuration.h. Ik heb een LCD 16x2 aangesloten op de Megatronics. Als ik de ( [reprap.org] ) werk de LCD goed.
Als ik nu de Marlin firmware de "#define ULTRA_LCD //general lcd support, also 16x2" aan zet krijg errors bij het compileren."'SHIFT_CLK' was not declareer in the scope". Volgens mij moet ik nog meer doen.

Als ik ""#define ULTRA_LCD" uit zet gaat het compileren goed.

Als iemand een duidelijke link met omschrijving weet, graag. ;-)

groet,

Edwin Noorlander
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 04, 2014 05:05PM
Nou dat gaat beter. :-)

Ik heb het antwoord gevonden. Zie: ( [forums.reprap.org] )

Ik heb dus in de ultralcd.cpp vanaf regen 1008 het volgende veranderd.
#else
#if (MOTHERBOARD != 701) // <-- Dit het ik toegevoegd om dus voor het compileren voor een Megatronics V2.0
pinMode(SHIFT_CLK,OUTPUT);
pinMode(SHIFT_LD,OUTPUT);
pinMode(SHIFT_EN,OUTPUT);
pinMode(SHIFT_OUT,INPUT);
WRITE(SHIFT_OUT,HIGH);
WRITE(SHIFT_LD,HIGH);
WRITE(SHIFT_EN,LOW);
#endif

Maar toch bedankt ieder..

Edited 1 time(s). Last edit at 01/04/2014 05:14PM by e.noorlander.
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 04, 2014 06:00PM
Je moet de # voor de if weghalen!

Dus:

#if (MOTHERBOARD != 701) // <-- Dit het ik toegevoegd om dus voor het compileren voor een Megatronics V2.0

wordt

if (MOTHERBOARD != 701) // <-- Dit het ik toegevoegd om dus voor het compileren voor een Megatronics V2.0

Zelfde bij de endif

Dus in principe krijg je dan:

if (MOTHERBOARD != 701) // <-- Dit het ik toegevoegd om dus voor het compileren voor een Megatronics V2.0
pinMode(SHIFT_CLK,OUTPUT); 
pinMode(SHIFT_LD,OUTPUT);
pinMode(SHIFT_EN,OUTPUT);
pinMode(SHIFT_OUT,INPUT);
WRITE(SHIFT_OUT,HIGH);
WRITE(SHIFT_LD,HIGH);
WRITE(SHIFT_EN,LOW);
endif

Ik weet niet of je bij de 'else' ook de # moet weghalen, ik kan de rest van jouw code niet zien!

Edited 2 time(s). Last edit at 01/04/2014 06:01PM by Ohmarinus.
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 05, 2014 03:49AM
Hoi,

Nee hoor dat hoef niet. Het verschil tussen #if en if is dat als je de # weg haalt de compiler altijd de code zal compileren ondanks of de stelling waar is.
De #if wordt voor het compileren berekend, en als de vergelijking niet waar is, wordt de code, tot aan de #endif, niet gecompileerd.

Zo werkt de code dus nog als je hem compileert voor een ander board.

Gr. Edwin.
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 05, 2014 07:06AM
Ja, ik kan de rest van de code niet zien, dus dat zal dan wel.

Maar succes dan, heb je het wel geprobeerd zonder de hash?
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 05, 2014 12:37PM
Hoi Ohmarius,

Ja ik heb beide geprobeerd, met en zonder hash, maar zoals ik al probeerde uit te leggen.
#if (MOTHERBOARD != 701)
pinMode(SHIFT_CLK,OUTPUT); 
pinMode(SHIFT_LD,OUTPUT);
pinMode(SHIFT_EN,OUTPUT);
pinMode(SHIFT_OUT,INPUT);
WRITE(SHIFT_OUT,HIGH);
WRITE(SHIFT_LD,HIGH);
WRITE(SHIFT_EN,LOW);
#endif
Bij deze code compileert de compiler alleen de code tussen de #if en de #endif als de stelling MOTHERBOARD !=(niet gelijk aan) 701 is.

bij de code;
if (MOTHERBOARD != 701)
pinMode(SHIFT_CLK,OUTPUT); 
pinMode(SHIFT_LD,OUTPUT);
pinMode(SHIFT_EN,OUTPUT);
pinMode(SHIFT_OUT,INPUT);
WRITE(SHIFT_OUT,HIGH);
WRITE(SHIFT_LD,HIGH);
WRITE(SHIFT_EN,LOW);
endif
Compileert de compiler altijd de code, ook al is de stelling MOTHERBOARD != 701 waar of niet waar. Hierdoor wordt de code groter.
Om dus een ULTRA_LCD (16x2) aan te sluiten op een Megatronics V2 moet de code dus verwijdert of worden gemarkeerd worden. Op de Mannier zoals ik het geschreven heb, hoef je dus niet's te veranderen als je een ander moederbord gebruikt.


groet,

Edwin.
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 06, 2014 04:57PM
Alright, het zal wel aan mij liggen dat ik het niet snap winking smiley heb al meer dan tien jaar ervaring in coden en heb eigenlijk nog nooit echt een fout gemaakt, maar misschien overzie ik iets.

Iemand anders die nog een idee heeft waarom het niet werkt voor Edwin?
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 06, 2014 05:11PM
Als boardnumber 701 geen initialisatie routine had voor lcdinit en Edwin voegt die nu toe, dan moet hij wel even controleren of de pindefinitie voor SHIFT_CLOCK in pinning.h wel goed is en bestaat voor board 701. Vette kans dat die er niet zijn en dat hij die ook moet copieren van board definitie 33.

Eric
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 06, 2014 05:46PM
Volgens mij is mijn tweede poost niet goed overgekomen, maar het werkt nu.
En die shift problemen komt omdat ik geen keypad heb aangesloten.
Ik heb alleen een LCD aangeslopen via de LCD poort.
De Marlin firmware gaat er vanuit dat als je een LCD aansluit je ook een keypad gaat gebruiken, en die werkt door middel van een input shifter 74HC165.
En ja mijn 35 jaar programmeren zal wel mee hebben gewerkt, maar alles werkt nu.

Maar bedankt voor de aandacht voor dit probleem.

Groet Edwin
Re: Megatronics V2.0 en LCD 16x2 Marlin Firmware
January 06, 2014 07:00PM
Haha, okay, gelukkig smiling smiley

Bij mij geeft de software soms een error zonder dat er iets daadwerkelijk mis is met de firmware, het is een mooie wereld winking smiley
Sorry, only registered users may post in this forum.

Click here to login