-
Thread
KS0108 Atmega16/32 - nur streifen
ks0108ReadFontData, BLACK); // Set a position //ks0108GotoXY(15,10); // Print some text //ks0108Puts_P(PSTR("test")); // a nice little round rect //ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK); // Once again :) // Select a font //ks0108SelectFont(SC, ks0108ReadFontData, BLACK); // Set
-
Thread
ADC-Wert nicht linear beim Einlesen
readADCWert (0); // ADC-Wert einlesen // ADC-Wert ausgeben lcd_setcursor(0,0); lcd_string_P(PSTR("ADC-Wert:")); utoa( ADCWert, buffer, 10); lcd_string( buffer ); } } void init_ports(void) { // Port B ungenutzt DDRB = 0x00; PORTB = 0xFF; // alle Pullups ein
-
Thread
MCU Parameter aus Makefile als ASCII im Quellcode?
s) #s #define S(s) STRINGIZE(s) #define __MCU__ S(MCU) #define __FCPU__ S(F_CPU) printf_P(PSTR("\r\nMikrocontroller "__MCU__" %u mal progr."), cnt); [/c]
-
Thread
Dez-Hex Umwandler
'6') {cbf_put(rx_buf, '1'); cbf_put(rx_buf, '0');} else {return parse_error(tx_buf, '?', PSTR("Y")); }
-
Thread
strcmp_P
Leider habe ich da meine Probleme. Mit diesem Befehl funktioniert es. gleich = strcmp_P(string,PSTR("Measure")); Versuche ich aber so geht es nicht. gleich = strcmp_P(string,COMMAND1); ich hab natuerlich den String im Flash ueber PROGMEM initalisiert. const char PROGMEM COMMAND1[] =
-
Thread
Flyback-Trafo: Verwirrung beim Proximity-Effekt bei parallelgeschalteten Wicklungen
www.weewave.mer.utexas.edu/MED_files/MED_research/Intrcncts/Skin_Effect_Ldr/MTT_96_poster/MMT_96_skn_crct_pstr.pdf Da kannste dir seinen parametrisierbaren Subcircuit bauen. Dann setzt du den koppelfaktor auf 1 und setzt die Streuinduktivitäten via dem Modell händisch ein. Zusätzlich lohnt es sich das
-
Thread
Externe Interrupts INT0 und INT1 deaktivieren
lcd_set_cursor(56,30); // Cursor wird auf Position gesetzt lcd_puts_p(small_font,PSTR("Initialisierung")); // Ausgabe des Wortes for(i=2;i<=56;i++) // Füllen der Progressbar { _delay_ms(35); lcd_fill_rect (57,40,i,4,BLACK); } GPS_available
-
Thread
Suche Kühlkörper mit gute Wärmeleitung für viele LEDs
ProLight Opto PACG-110FWL-BCGP auf jeweils 1,5A. Macht laut dem Datenblatt etwa 520W Pel und etwa 220W Pstr laut dem Spektraldiagramm und der Lumenangabe. Alles gerechnet bei eher schlechten 60°C Casetemperatur (bei COBs gibt es in der Regel keine Chiptemp.-Angaben). Macht also 300W Abwärme verteilt auf
-
Thread
Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega
, PSTR("ty.txt=\""), 8) == 0) { tft.setCursor(15, 75); tft.setTextColor(ILI9341_YELLOW, ILI9341_BLUE); tft.print("Y: "); tft.print(serialBuffer + 8); } else if (strncmp_P(serialBuffer
, PSTR("tf.txt=\""), 8) == 0) { tft.setCursor(15, 150); tft.setTextColor(ILI9341_GREEN, ILI9341_BLACK); tft.print("FEED: "); tft.print(serialBuffer + 8); } } [/c] Gruß, Wolfram
-
Thread
printf bei Handy-SMS Code aus Artikel geht nicht?
Ichbinimflash[] PROGMEM = "%s"; printf_P(Ichbinimflash); ?????? [/c] Oder einfach so: [c]printf_P(PSTR("at+cclk?\r\n"));[/c] > (Kennt jemand eigentlich mal so eine Art Dokumentation zu diesen > merkwürdigen printf-Funktionen? Ich weiß eigentlich gar nicht genau, was > die machen...?!) http://
-
Thread
Atmega168/328: interner Temperatursensor
; // andere Initialisierungen lcd_init(LCD_DISP_ON); lcd_clrscr(); lcd_puts_p(PSTR("Temperatur: ")); char valueToPrint[5]; for(;;){ // insert your main loop code here dtostrf(ADC*1100.0/1024.0-314.0+25.0, 5,
-
Thread
gets problem
(zeittemp[4]-'0'); sek=(zeittemp[6]-'0')*10+(zeittemp[7]-'0'); sek--; sprintf_P(zeittemp,PSTR("%2i:%2i:%2i"),h,min,sek); myprintf("%s",zeittemp); myprintf("\n\n"); } [/c] zeittemp ist 19 Byte groß. Epmpfang ist auch aktiviert: #define UART0_CONFIGURE1 UCSRB= (1<<RXCIE
-
Thread
Mal wieder Probleme mit UART
char *text); //Damit Strings aus dem Flash gelesen werden #define uart_put_s_P(__s) uart_put_s_p(PSTR(__s)) [/c]
-
Thread
Register variablen unterschied?
OK: void main (void) { uart1_puts_p(PSTR("TestString")); do {} while(1); } So sieht der rest des Codes aus. Also ich rufe dir Funkton nur einmal auf um etwas über die Uart auszugeben und zwar aus dem Programmspeicher
-
Thread
XMega bleibt "hängen"?
über Interrupts ausgegeben, sondern relativ straight forward: Meine Debugfunktion ist diese hier (PSTR für das ablegen der Strings im PROGMEM): #define Debug_Str(_str) ( dputsP (PSTR(_str)) ) die Funktion dputsP sieht folgendermassen aus: inline void dputsP (const char * str) { while (pgm_read_byte
-
Thread
ATMega1284P + EA-DOGL128 mit Library von Jan M.
lcd_init(); while (1) { lcd_put_string_P(FONT_FIXED_8, NORMAL, PSTR("Hallo Welt")); } } Das ganze programmiere ich im Atmel Studio 7 und bekomme leider einen compilierfehler: Undefined reference to ´font_fixed_8px` Zu der Library gehört noch der Ordner
-
Thread
SPI Geräte stören sich gegenseitig. ILI9341 regiert auf ENC28J60 Befehle. Was tun
entfernt bis ich denn Fehler gefunden habe: Folgender Code: [code] plen=fill_tcp_data_p(buf, plen, PSTR("Temperatur Sensor Außen: <font color='red'>Can't find Temp Sensor</font>!<br/>")); [/code] Das Problem ist das <font color='red'>. Wenn ich dieses aus dem Code entferne dann läuft das Display normal
-
Thread
avr-libc: relocation truncated to fit
Pferdefuß ist, daß das eine bestimmte Version der avr-libc in gcc vorausetzt -- was aber mit dem PSTR-Fix ja auch schon de facto der Fall ist. Ein -mavr-libc wäre ja nur dann sinnvoll, wenn es standardmässig aktiviert ist.
-
Thread
I2C-LCD von sainsmart - keine Anzeige
lcd_init(); lcd_light(true); lcd_print(string1); lcd_nextline(); lcd_print_P(PSTR("I2CLCD V0.11")); // always set all three parameters (ON/OFF) when using this command lcd_command(LCD_DISPLAYON | LCD_CURSORON | LCD_BLINKINGON); _delay_ms(1000); lcd_command(
-
Thread
Probleme mit UART
verschickt wird. Text kannst Du dann zB mit printf("Wert: %u", var); oder printf_P(PSTR("Wert: %u"), var); aussenden. Die richtige Library muß natürlich auch dazu gelinkt werden. Siehe Doku. Volkmar
-
Thread
WinAVR: Einzelne Strings aus dem Flash auslesen
sieht dein USART_TxString_P aus? (Ich hege den Verdacht, dass da mittels Makro noch ein implizites PSTR drinnen steckt)
-
Thread
Frage zu Strings/Strukturen im Flash
und die zeiger direkt auf den flash-bereich zeigen. laut den beispielen geht sowas für fkt mit PSTR. aber dieser mechanismus versagt natürlich bei dem o.g. beispiel. ich brauche das, da ich (mal wieder) exzessiv mit dem präprozessor hantiere, der code der ausgespuckt wird aber dafür sorgt das der
-
Thread
Prozessor startet sich beim Array beschreiben neu
ganz hülfreich. Gern übersehen wird, daß string literals standardmäßig (also wenn sie nicht via PSTR() deklariert werden und einer auf _P endenden Routine übergeben werden) auch RAM benötigen (damit sie mit den normalen String-Funktionen aus <string.h> kompatibel sind). Vielleicht hast Du davon
-
Thread
Grafik LCD am PortC geht am Port B nicht! atm8 & KS0108
ks0108ClearScreen(); // Set a position ks0108GotoXY(15,10); // Print some text ks0108Puts_P(PSTR("www.mikrokontroller.net")); // a nice little round rect ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK); }
-
Thread
Keine GPS Datenanzeige auf GLCD Display (Navilock 552ettl)
ob Schleife bis hierher gelangt, wenn ja, wird uart_gets abgearbeitet lcd_puts_p(small_font,PSTR("Line")); _delay_ms(12000); lcd_clear(); _delay_ms(1500); } return 0; } [/C]
-
Thread
PRINT oder ähnliches für XMEGA
irgendwo aus einem open-source Projekt übernommen habe. #define PRINT(string, ...) printf_P(PSTR(string), ##__VA_ARGS__) static int putchar__(char c, FILE *stream) { uart_putc(c); return 0; } static FILE mystdout = FDEV_SETUP_STREAM(putchar__, 0, _FDEV_SETUP_WRITE); Soweit zum Define
-
Thread
AVR-Attiny: sprintf() mit Progmem
sprintf_P [c] sprintf_P(buffer, PSTR("Hallo Welt, %d"), i); [/c] http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html
-
Thread
128x64 Grafikdisplay von Pollin
LCD_RST) #define LCD_RST_L() LCD_CTRL &= ~_BV(LCD_RST) #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) #define XMAX 127 #define XMIN 0 #define YMAX 63 #define YMIN 0 #define G_BASE 0x200 #define BYTES_PER_ROW 21 void lcd_init(void); void lcd_status(void); void lcd_status_am(void
-
Thread
HexString to String
argh sprintf_P(sOutString, PSTR("%ld"), strtol(sInString, 0, 16)); ja... is ok ...
-
Thread
KS0108 - Thiele Library - Anzeige verhunzt
ks0108ReadFontData, BLACK); // Set a position ks0108GotoXY(1,1); // Print some text ks0108Puts_P(PSTR("Hallo Welt -> 1")); // a nice little round rect ks0108DrawRoundRect(5, 5, 117, 20, 8, BLACK); wait(1); ... ------------- Richtig eingebunden sind die Dateien, denn immerhin bekomme
-
Thread
Avr Studio 6 - prog_char Fehlermeldung
1 unknown type name 'prog_char' In der entsprechende Zeile steht: DisplayStr(const prog_char* pstr); und diese Datei ist eingebunden #include <avr/pgmspace.h> In der pgmspace.h ist das prog_char auch enthalten. Weiß jemand, wieso das AVR Studio 6 mit einmal darüber stolpert und wie ich es zum
-
Thread
Zeichenkette über UART empfangen
buf; // answer overwrite command cmd_data.args = sscanf_P(buf, PSTR(CMD_FMT CMD_FMT "%g"), cmd_data.cmd, cmd_data.par, &cmd_data.val); if (cmd_data.args != (uint8_t)EOF) // if not empty { for (command_t* cmd_p
-
Thread
MinGW Linkerfehler??
HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPreInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("hallo"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc
-
Thread
printf mit Atmega128 über uart0
ändern: char character PROGMEM = 'H'; char string[] PROGMEM = "ello World!"; ... printf_P(PSTR("%c"),character); Vielen Dank Heiko
-
Thread
memcpy_P mega1280 bootloader
Bootloadersektor vom Atmega (0x1E000), setzt memcpy alle bits auf 1. memcpy_P(uip_ethaddr.addr, PSTR("ac:de:48:fd:0f:d0"), 6); Da kommt dann wenn es in der bootloader section steht nurnoch ff:ff:ff:ff:ff:ff raus... im unteren Programmspeicher klappts problemlos. memcpy(uip_ethaddr.addr, "ac:de
-
Thread
Unerklärlicher Reset, ATmega16
ich hab mir für strings immer die LCD funktionen gleich als lcd_P() gebastelt aufruf dann lcd_P( PSTR("text") ); oder eben über arrays im flash bei sehr vielen menütexten und einen zeiger drauf aber auch hier brauch man fast nur lcd_P ebenso UART_P wenn ich strings verschicken will .. alles
-
Thread
Programmierbare Relaiskarte - Konfigurationsdaten Lesen/Speichern/Übertragen
Ersetze alle Vorkommnisse von strcmp (Variable, "abcdefgh") durch strcmp_P (Variable, PSTR("abcdefgh")) Dann bleiben die Stringkonstanten im Flash. Das Makro PSTR liefert eine Adresse aus dem Flash und nicht aus dem RAM zurück, strcmp_P() ist die äquivalente Form von strcmp, liest aber
-
Thread
China SUPER Bauteile-Schnäppchen Thread
identifier = LCD_readRegister(LCD_R_DRIVERCODE); if(identifier == 0x9325) { Serial.println(PSTR("Found ILI9325 LCD driver")); } else if(identifier == 0x9328) { Serial.println(PSTR("Found ILI9328 LCD driver")); } else if(identifier == 0x7575) { Serial.println(PSTR("Found HX8347G LCD driver")); } else { Serial.print(PSTR("Unknown LCD driver chip: ")); Serial.println(identifier, HEX); } [/c] Nur zur Info: Das LCD meldet sich als _ILI9325_ . http://www.adafruit.com/datasheets/ILI9325.pdf
-
Thread
Wie feststellen in C, ob Zahl grade oder ungrade?
deutlich mehr drin: [c] int isodd(int a) { char buf[7]; int n; n = snprintf_P(buf,6,PSTR("%i"),a); return buf[--n]=='1'; } [/c] So versteht es selbst ein Grundschüler.
-
Thread
Arduino digitalWrite durch C-Code ersetzen
} // void backlight_m(void) void con_hell_stat(boolean zueep) { sprintf_P(s_out_str, PSTR("con=%02d hell=%02d"), MY_EEP_VAR.contra, MY_EEP_VAR.backlicht); myGLCD.print(s_out_str, LEFT, COHE_LINE); if(zueep) { my_i2c_eeprom_wait_ready(); my_i2c_eeprom_write_buffer( sizeof
-
Thread
RX Complete Interrupt wird nicht ausgelöst
void usart_write_P (const char *Buffer,...); #define usart_write(format, args...) usart_write_P(PSTR(format) , ## args) //---------------------------------------------------------------------------- #endif //_UART_H [/c]
-
Thread
ESP32 A1S Eval
## void setup() { Serial.begin(115200); Serial.println("\r\nReset"); Serial.printf_P(PSTR("Free mem=%d\n"), ESP.getFreeHeap()); Serial.printf("Total heap: %d \r\n", ESP.getHeapSize()); Serial.printf("Free heap: %d \r\n", ESP.getFreeHeap()); Serial.printf("Total PSRAM: %d \r\n"
WL_CONNECTED) { Serial.print("."); delay(100); } wifi_flag = true; Serial.printf_P(PSTR("Connected\r\nRSSI: ")); Serial.print(WiFi.RSSI()); Serial.print(" IP: "); Serial.println(WiFi.localIP()); // Start AC101 Serial.printf("Connect to AC101 codec... "); while (not
-
Thread
Simpeles Menü - Denkfehler
dem zeigerarray arbeiten und einfach lcd_write_P(text_1); schreiben oder lcd_write_P( PSTR(" blubbblubb") ); typisch für lcd_write ist ja : lcd_write( char *string) { while(*string) lcd_data( *string++); } die P ist etwas anders lcd_write_P(const char *string) {
-
Thread
Kleines Problem bei C++ und WinAPI
fahrt_v2 = 5; int fahrt_h2 = 5; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MSG msg; HWND hWnd; WNDCLASS wc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.hCursor
-
Thread
LCD an ATmega644 (später ATmega8) mittels TWI/I2C (Anfängergerecht)
true); //lcd_gotolc(0,0); //lcd_print(string1); lcd_gotolc(0,0); lcd_print_P(PSTR("I2CLCD V0.12")); _delay_ms(3000); lcd_command(LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKINGOFF); } Leider funktioniert die nicht so wie gehofft. Ich bekomme kryptische Zeichen auf
-
Thread
Hilfe zu DS18S20
LCD die Texte aus, kannst Du erstmal auskommentieren: [c] #if 1 # define TRACE(x) Trace_LCD_P(PSTR(x)) #else # define TRACE(x) #endif [/c] gruß, jetzt geht es an die Daten...
-
Thread
S65 GLCD - wie farbige Icons mittels Font Editor?
gespeichert ist. Du kannst also feste Texte auch direkt aus dem FLASH zeichnen lassen: glcdDrawText(PSTR("Text im FLASH Speicher"), -1, 1); Das optimiert die Speicherverwaltung bei Textkonstanten da diese im Grunde immer im FLASH gespeichert werden aber normalerwiese zum Startup durch den WinAVR GCC
-
Thread
String in char convertieren
"; cout << input << " space " << " was anderes" << endl; [/c] Das ganze kann man noch mit F() PSTR und PROGMEM usw. garnieren, wenn man denn RAM freischaufeln will.
-
Thread
Wie statisches HTML/css/javascript in C/C++ Projekte einbinden?
"<body>404 page not found</body></html>"; server.onNotFound([](){ server.send_P(404, PSTR("text/html"), PAGE_NOT_FOUND); }); [/code] Das funktioniert technisch natürlich einwandfrei. Aber spätestens wenn man hier Javascript einbinden will, das noch interaktiv entwickelt wird, ist es
-
Thread
Atmega644 UART - Komische Ausgabe
dorthin gebracht werden. Schau Dir mal in der Dokumentation zu <avr/pgmspace.h> an, was z.B. der Macro PSTR() tut.