Het Elektor forum gaat sluiten. Zie ook deze link. Vanaf vrijdag 15 maart is het niet langer mogelijk om in te loggen op het forum. Wel blijft de inhoud van het forum nog zichtbaar tot het einde van de maand maart. Per 1 april gaat het forum definitief uit de lucht.

Vermenigvuldigen in Bascom

Ontwerpen en programmeren

Postby e. » Thu Oct 11, 2012 12:00 am

Heb de aanwijzingen opgevolgd en nu werkt het. Ik kreeg wel heel veel cijfers achter de komma. Daarom een nieuwe variabele Y As Long ingevoerd om alleen ronde getallen te krijgen. Ik begin het te snappen (ha ha). Reuze bedankt voor jullie adviezen.

Eimert.
Attachments
a1.jpg
e.
 
Posts: 15
Joined: Thu Jan 02, 2014 3:38 pm

Postby nieuw 2 » Thu Oct 11, 2012 12:00 am

Die extra variabele heb je niet nodig.

Lcd (long)VofLcd Round(V)


Zou hetzelfde moeten opleveren.

Een float heeft inderdaad zeer veel cijfers na de komma.
nieuw 2
 
Posts: 124
Joined: Thu Jan 02, 2014 3:28 pm

Postby e. » Mon Oct 15, 2012 12:00 am

Te vroeg gejuigd ... "Rounden" gaat prima er is alleen één maar. Variable V wordt inderdaad afgerond maar het getal wordt nu als 10000.0 afgebeeld en ik wl die ".0" niet achter het getal. Nog een suggestie iemand ?
Attachments
round2.jpg
round1.jpg
e.
 
Posts: 15
Joined: Thu Jan 02, 2014 3:38 pm

Postby arjen h. » Mon Oct 15, 2012 12:00 am

Geen ".0" op het scherm.... dat zit hem niet in de variabelen en/of de round functie, maar in de functie "Lcd". Deze functie plot het getal op het display. Als er wat anders geplot moet worden, dan moet je of deze functie aanpassen of je moet zelf een functie schrijven dat doet wat jij wilt.

edit:
Of het gerounde getal converteren naar een long en dat getal plotten. "Lcd (long)V".
Zie ook post van 'Nieuw 2'.
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1321
Joined: Thu Jan 02, 2014 10:40 am

Postby e. » Mon Oct 15, 2012 12:00 am

Sorry dat ik weer terugkom, de compiler wil "Lcd (long) V" niet converteren omdat dit een unknown statement is (zegt ie). En vlak voor Lcd V de variable V herdimensioneren als "Dim V As Long" pikt hij ook niet omdat V in het begin van de listing al is gedimensioneerd. 't Blijft tobben.
e.
 
Posts: 15
Joined: Thu Jan 02, 2014 3:38 pm

Postby arjen h. » Mon Oct 15, 2012 12:00 am

Dim V As SingleDim X As SingleDim tempvar As LongX = 0.996Locate 1 , 1 : Lcd "Rekentest"V = 10040V = V * Xtempvar = (long)VLocate 2 , 1Lcd tempvarEnd


edit:
hmmm, dit lijkt hetzelfde te zijn als je eigen post bovenaan deze pagina....
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1321
Joined: Thu Jan 02, 2014 10:40 am

Postby e. » Mon Oct 15, 2012 12:00 am

Nou het werkt nu precies zoals ik het wil ! Kan nu mijn Atmega-frequentiemeter met extern kristal en met behulp van een geijkte functiegenerator uiterst nauwkeurig calibreren. Omdat ook kristallen een (zeer kleine) tolerantie hebben was de frequentiemeting niet exact. Door de waarde te vermenigvuldigen met 0,999 of 1,00034 en nog wat, is de afwijking bijna nul geworden.

Dank voor meedenken.
e.
 
Posts: 15
Joined: Thu Jan 02, 2014 3:38 pm

Postby msilvius » Mon Oct 15, 2012 12:00 am

En wat was nou de oplossing dan ?
msilvius
 
Posts: 701
Joined: Thu Jan 02, 2014 3:27 pm

Postby nieuw 2 » Tue Oct 16, 2012 12:00 am

EimertSorry dat ik weer terugkom, de compiler wil "Lcd (long) V" niet converteren omdat dit een unknown statement is (zegt ie). En vlak voor Lcd V de variable V herdimensioneren als "Dim V As Long" pikt hij ook niet omdat V in het begin van de listing al is gedimensioneerd. 't Blijft tobben.


Is normaal dat hij Dim V as Long niet accepteert. Je hebt V als single gedeclareerd en een variabele kan je geen 2 keer gebruiken in een andere gedaante.

Wat doet het programma als je

Lcd ((long)V)

gebruikt?
nieuw 2
 
Posts: 124
Joined: Thu Jan 02, 2014 3:28 pm

Postby e. » Wed Oct 17, 2012 12:00 am

Hoewel mijn probleempje is opgelost nog even een reactie op het berichtje hierboven. Zoals op de screendump is te zien, wil de compiler het Lcd ((long)v statement niet converteren. Maar waarschijnlijk moet ik de aanwijzing van Nieuw2 om Lcd ((long)v als zodanig te formuleren niet letterlijk nemen ???
Attachments
Rekentest3.jpg
e.
 
Posts: 15
Joined: Thu Jan 02, 2014 3:38 pm

PreviousNext

Return to Microcontrollers

Who is online

Users browsing this forum: google [bot] and 1 guest