Auteur Topic: Waar zijn we nu mee bezig ? Microcontrollers  (gelezen 417916 keer)

Offline Havoc

  • Forumlid
  • Berichten: 7.423
  • Voornaam: Johan
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #1410 Gepost op: 13 september 2021, 13:37:28 pm »
Johan bedankt om het uit te leggen
nooit gelezen in de manual maar ja er staat ook zoveel in dat ding
Komaan Raf, dat zijn maar 282 pagina's! Voor de Freescale PowerQuick II Pro waren het bijna 2000... En ja, als je met zo'n cpu iets moet doen dan moet je die bijna allemaal lezen. En ook alle addenda.

Gevonden op blz 360.
Alleen zeggen die losse letters me niets.
Heb er dus nog niets aan als ik wil weten wat

IF ingang4 = hoog THEN

aan tijd kost,of

PRINT at...........," bla bla"

Klopt, dat weet je dan nog niet. Want je hebt geen idee wat de compiler daar van maakt. Als je timing echt zo kritisch is, dan moet je:
- de routines zelf schrijven en in assembler in je programma zetten
- de machinetaal ontleden

Er zijn manieren om het wat te kunnen achterhalen. Maar dan moet je een testprogramma schrijven. Stel, je laat een teller lopen (in hardware met een gekende klok). Eerst schrijf je een routine die 3x die teller na elkaar uitleest en "uitprint". (*) Dan vervang je de middelste teller door de instructie of het stuk programma waar je de tijd van wil kennen.

Echt 100% exact is dat niet maar het gaat toch een goed idee geven van hoe lang het duurt. Gaat ook wat proberen nodig zijn met de tellerklok om een zinvol resultaat te krijgen.

(*) Beste is die teller naar een variabele te schrijven en dan na het stuk programma alle bewaarde tellers te lezen en naar buiten te schrijven.
Expert in non-working solutions.

Offline Harm

  • Forumlid
  • Berichten: 49
  • Voornaam: Harm
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #1411 Gepost op: 13 september 2021, 15:53:21 pm »
dan moet je:
- de routines zelf schrijven en in assembler in je programma zetten
- de machinetaal ontleden

Zou een oplossing kunnen zijn, maar heb weinig trek in het leren van een extra taal.
Heb hier een tweetal spleetpool motortjes 230AC met tacho die ik aanstuur met een triac met pid regelaar.
Ben weken aan het kloten geweest en kreeg steeds wisselende effecten met andere instellingen van de pid en met bij- en afschakelen van delen van het programma.
En bij veranderende toerentallen, omdat bij lagere toerentellen het meten daarvan langer gaat duren.
Tot ik op een bepaald moment geen print at commando's meer gaf en het werkte.
Heb ook gekeken naar programma doorlooptijd.
Net voor het einde zet je dan "verander een uitgang van teken".
Als je die dan op een scope zet kan je ook de tijd aflezen.
Scheelt je weer fouten met teller- en frequentie instellingen in die rotdingen die men PIC noemt.

Programma laat een teller lopen en bij een opgaande ingang wordt die waarde opgeschreven.
Bij de volgende opgaande ingang een tweede waarde. trek 1 van 2 af en je weet het aantal pulsen van de teller.
Dan weet je na wat rekenen hoe hard de motor draait.
Vergelijk dan die waarde met wat gewenst is en corrigeer.
Stuur dan na het detecteren van de nuldoorgang van de netspanning een teller aan die een wachttijd maakt voordat de triac open moet om de motor spanning te geven.
Best wel tijdgevoelig dus allemaal.
Met heel veel commando's die dus naar nu blijkt niet te benoemen zijn als "het kost zoveel tijd".

Dank voor de reacties.

Offline patrick smout

  • Forumlid
  • Berichten: 230
  • Voornaam: patrick
Re: Waar zijn we nu mee bezig ? Microcontrollers
« Reactie #1412 Gepost op: 14 september 2021, 21:41:33 pm »
Mogelijk is dit iets wat je op weg kan helpen

http://www.picbasic.co.uk/forum/showthread.php?t=365
Met vriendelijke groeten,

Patrick Smout