Forum: Mikrocontroller und Digitale Elektronik Problem mit Programmierung Adafruit Thermal Printer in C


von Markus (Gast)


Lesenswert?

Hallo zusammen

Ich versuche gerade einen Thermal Printer (Adafruit BT-2) zum loggen 
einiger Daten in meinem Projekt zu integrieren.
Leider habe ich nur ein Chinesisches Manual ohne Hersteller oder 
Versionsbezeichnung.
Es funktioniert schon das meiste. Drucken von Text  bold  underline / 
Barcode  verschiedene alligns  …

Aber was ich nicht auf die reihe bekomme ist das drucken eines Bildes.
Habe mir aus einem schwarz/weiss bmp ein .h machen lassen mit dem LCD 
Assistant.
Ich versuche mit dieser Funktion mal einen Teil des Bildes zu drucken. 
(Noch nicht das ganze wegen dem Druckerbuffer).
1
void printer_bitmap(void)
2
{
3
4
   uint8_t bmp_with = 80;     // XX Pixel
5
   uint8_t bmp_hight = 20;    // XX Pixel
6
   uint16_t bytes = ((bmp_with +7) /8) * bmp_hight;   // number of databytes
7
  
8
   NRF_LOG_RAW_INFO("\x12\x2A\%d\%d",bmp_hight,((bmp_with+7)/8));   
9
   for(uint16_t i=0; i<bytes; i++)  
10
   {
11
      NRF_LOG_RAW_INFO("\%d",cthulhu_1[i]); 
12
      nrf_delay_us(100);
13
   }
14
}

Aber es druckt nur einige „unmotivierte“ Striche.
Kennt sich wer von euch mit dem Drucker aus ?

Vielen Dank
Markus

: Verschoben durch User
von Dirk B. (dirkb2)


Lesenswert?

Hast du ein Datenblatt für uns?

Und mehr Code wäre sicher sehr hilfreich.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus schrieb:
> NRF_LOG_RAW_INFO("\x12\x2A\%d\%d"

Das sieht nach einem kaputten Formatstring für eine printf-artige 
Funktion aus.

Was soll "\%d" bewirken?

von Jens M. (schuchkleisser)


Lesenswert?

Sicher, das Frau Ada nicht ein Datenblatt und ein Demoprogramm am Start 
hat?
Sowas hat sie eigentlich immer, aber BT2 kennt man da nicht.
Product ID 597 (https://www.adafruit.com/product/597)?

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.