kitao schreef op donderdag 15 november 2012 @ 09:03:
[...]
Dat werkt inderdaad
niet, voor geen enkele A-pin, led gaat aan/uit, maar niks te merken van een fading-effect.
Jammer, nou heeft naaitsab er nog niks aan, tenzij hij, zoals voorgesteld, googelt op software pwm lib.
Hier alvast 1 resultaat, ik laat het hierbij, software is niet mijn hobby

Hij kan dan ook beter gewoon PWM pinnen voor PWM gebruiken, en analoge pinnen voor random digitale meuk.
Rusky schreef op donderdag 15 november 2012 @ 08:44:
[...]
Dat gaat dus niet goed

ik had als eerste die B aangeroepen als:
code:
1
| actionSwitch.sendSignal(serialData[0], serialData[2], false); |
Dus direct de B uit de array in de functie geplakt. En deze deed helemaal niks. Daarna ben ik pas met die aanhalingstekens geen lopen moeken.
Dan gaat daar wat mis, gezien dat dat wel hoort te werken. Zou ik daar toch meer naar kijken.
[...]
Hmmm ... dat is nu duidelijk voor me.
Ik zit niet thuis dus ik kan niet testen, maar zou dit dan gaan werken.
code:
1
| char functie = 39,serialData[2],39; |
Dan krijg ik direct een char en geen array meer ...
Dat mag niet, want daar probeer je 3 chars op de plaats van 1 char op te slaan, dat gaat je dus niet lukkn. Als je er 3 wilt hebben moet je echt een array hebben, en moet je functie daarmee overweg kunnen.
Dus kan een char ook een string zijn met meerdere karakters? (BTW als ik dit zo lees zou me eerste poging ook al goed moeten gaan, zoals furby-killer zegt

Chars zijn enkele karakters, char arrays zijn rijen karakters, die dus bijvoorbeeld een zin kunnen vormen. Strings zijn echt gemaakt om een zin/woord te vormen, echter kosten die een hoop meer memory (niet zozeer string zelf, maar de functies ervoor), dus gebruik je normaal gesproken een char array.
Edit: Tada je fout gevonden. Wat jij moest sturen:
actionSwitch.sendSignal(1,'B',true);
Wat jij stuurt:
actionSwitch.sendSignal(serialData[0], serialData[2], true);
Probleem is serialData[0], dat is niet gelijk aan 1, het is gelijk aan '1': Je moet een integer 1 sturen, en je stuurt het karakter 1. Ik geloof dat iets van atoi dat kan omzetten (ik ben de mbed gewend, en die heeft veel krachtigere seriele functies die het direct goed kunnen doen op de standaard c manier). De hele quick and dirty way, maak van je functie:
actionSwitch.sendSignal(serialData[0] - 48, serialData[2], true);
Waarom? In ASCII is 48 een '0'. Dus als jij een '1' doorstuurt, is dat gelijk aan 49. Trek daar 48 vanaf, en je hebt weer 1. (Uiteraard is dit niet de netste methode, maar het werkt voor simpele test het snelste).
[
Voor 16% gewijzigd door
Sissors op 15-11-2012 11:08
]