Element uit char array gebruiken
2 berichten
• Pagina 1 van 1
- Martijn_Hoving
- Berichten: 1
- Geregistreerd: 26 Nov 2020, 19:58
Element uit char array gebruiken
Hallo,
Nieuw op het forum hier maar niet onbekend met de arduino.
Ik probeer een element uit een array op een oled display weer te geven. Als ik bijvoorbeeld element 2 uit een 10 elementen grote arry selecteer wordt er op het oled display
element 2 tot en met 10de element weergegeven. Ik verwachte dat alleen element weer gegeven zou moeten worden. Als ik b.v. het vierde element weer wil geven dan wordt het vierde element weer gegeven to en met het tiende element.
Enig idee waar ik de fout in ga?
Bijgevoegd mijn code
Vriendelijk bedankt alvast
Martijn
Nieuw op het forum hier maar niet onbekend met de arduino.
Ik probeer een element uit een array op een oled display weer te geven. Als ik bijvoorbeeld element 2 uit een 10 elementen grote arry selecteer wordt er op het oled display
element 2 tot en met 10de element weergegeven. Ik verwachte dat alleen element weer gegeven zou moeten worden. Als ik b.v. het vierde element weer wil geven dan wordt het vierde element weer gegeven to en met het tiende element.
Enig idee waar ik de fout in ga?
Bijgevoegd mijn code
- Code: Alles selecteren
#include <stdlib.h>
#include <U8glib.h>
#define FF_SEL 7
#define DISP_A0 10
U8GLIB_SH1106_128X64 ffiDisp(FF_SEL,DISP_A0); // FFI Display SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//char Digits[11]={'0','1','2','3','4','5','6','7','8','9','\0'};
char Digits[10]={48,49,50,51,52,53,54,55,56,57}; //hex value pointing to FFI_DIGITS.h Fonts
//ffiDisp.drawStr(25,41,&Digit[6]);
// x,y ,digit
void Digit_Roll(void)
{
ffiDisp.setFont(FFI_Digits);
ffiDisp.drawStr(25,19,&Digits[1]);
ffiDisp.drawStr(25,41,&Digits[2]);
ffiDisp.drawStr(25,63,&Digits[3]);
/*for(int i=0;i<10;i+1)
{
char Digit10s = Digit[i];
ffiDisp.drawStr(25,41,&Digit2);
delay(10);
delay(10);
}*/
}
Vriendelijk bedankt alvast
Martijn
Advertisement
Re: Element uit char array gebruiken
Er is blijkbaar geen DrawChar() functie en ook geen DrawInteger() functie.
Dan zit er niets anders op dan iedere keer zelf een zero-terminated string te maken.
Stel je hebt een integer die 5 is en je wilt het leesbare ASCII teken '5' op het scherm zetten.
Ziet dat er logisch uit ?
Dan is mijn tweede vraag: Heb je dat nodig ?
Meestal wordt een regel tekst gemaakt met daar een nummer bij. De sprintf() functie kan zo iets in één keer maken, maar doet geen float nummers. Er is verder itoa(), ltoa(), dtostrf(), etostrf(), de Arduino String class, en nog veel meer.
Wat wil je op het scherm zetten ?
Dan zit er niets anders op dan iedere keer zelf een zero-terminated string te maken.
Stel je hebt een integer die 5 is en je wilt het leesbare ASCII teken '5' op het scherm zetten.
- Code: Alles selecteren
int i = 5; // value to print
char myText[2]; // helper array
myText[0] = i + '0'; // binary number to readable ascii
myText[1] = '\0'; // zero-terminator
ffiDisp.drawStr( 25, 19, myText);
Ziet dat er logisch uit ?
Dan is mijn tweede vraag: Heb je dat nodig ?
Meestal wordt een regel tekst gemaakt met daar een nummer bij. De sprintf() functie kan zo iets in één keer maken, maar doet geen float nummers. Er is verder itoa(), ltoa(), dtostrf(), etostrf(), de Arduino String class, en nog veel meer.
Wat wil je op het scherm zetten ?
2 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten