Jump to content

SSD1306, BitPattern, Pages - Oscilloscope....


Recommended Posts


look at that code:

static u8 h = 0; for (h=0; h<128; h++) {	//////// Print Wave ////////
											// The Scope[128] has 128 colums(H), the value of each points to the ROW(V)/active Pixel.
											// so we get a Line as we now from Oscilloscopes 
											static s16 v = 0; 
											v = ScopeENV[h];
											// set the Horizontal/colum Position    &   the vertical?
											APP_LCD_GCursorSet(h,v);    // (h, v set insert Position   for Bitmap
											// The Graphical RAM, has H:128 Segments, but the V:64 Segements are divided in
											// 8x Banks, which are feedet with Data aka "Bit-PAtterns"
											// you cant adress a single V-Bit Directly!
											static s16 v_new = 0;
											v_new = 1 << (v % 8 );
											APP_LCD_Data(v_new);	}

it prints a Waveform-Line on a SSD1306  @ once (so the Waveform already exists int the array "Scope"

It works pretty well.

But what i now need is a bigger Line.... the line/wave it provides is 1Pixel thick. --- how to achive that? (be aware that APP_LCD_DATA also stepforward one X/H/Colum when it receives a Data!)


And for a other part of my code, i need a "Solid Body" for my Waveform.

since i use it to show the waveform of a ENVELOPE, i want the top side (above the Wave-form-line) to be blank, while the buttom side of the Waveformline should be filled out (so it has a body/solid)

i tried 2 days now... until i realized that i have t make function that provides me a Bit-Pattern that i can send to "APP_LCD_Data(data);"

so a simple for loop that fills all Vertical Cells under the Oscilliscopes-point until it reaches the zeroline - want work....


for example the pointer (in sense of elctronical-beam-line-point...) of the Oszilloscope is vertically on position 32, so Pixel 32 to 0 should be Active.

so i have to find out on which page (0-7 aka Pixel 0-64Vertical) this pixel is, and then make a BIT-Pattern (how ever this work) for this Pages because not all Bits are Set in Page of the OSC-Pointer-Pixel32....

then set a curosor? then write the first Bit-Pattern.

then set the next cursor with a BitPattern that is fully 11111111, then again and again until we are on Zero-Line.


or something like that, but for that i dont have enough knowledge of bitshifting, bit-pattern, dot-matrix, pages and stuff...


i also coulld modify app_lcd.c.... since i have already some mods.

in the datasheet of the SSD1306, i read there is a Vertical Adressing Mod too! (maybe there is a path)

Edited by Phatline
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...