Functions | |
void | pcd8544_init () |
void | pcd8544_send_byte (uns8 b) |
void | pcd8544_send_command (uns8 cmd) |
void | pcd8544_send_data (uns8 data) |
void | pcd8544_setup_io () |
void pcd8544_init | ( | ) |
00055 { 00056 00057 /* 00058 set_pin (pcd8544_res_port, pcd8544_res_pin); 00059 set_pin(pcd8544_sce_port, pcd8544_sce_pin); 00060 */ 00061 00062 // toggle reset 00063 // must be at least 100ns 00064 clear_pin(pcd8544_res_port, pcd8544_res_pin); // pulse low for reset 00065 delay_ms(100); 00066 set_pin (pcd8544_res_port, pcd8544_res_pin); 00067 00068 // Function set: PD=0 (chip active), V=1 (vertical addressing), H=1 (extended instructions) 00069 pcd8544_send_command(0b00100011); // 0x21 00070 00071 // Set Vop (contrast) to 72 - 7 least significant bits 00072 pcd8544_send_command(0b11001000); // 0xc8 00073 00074 // Set temperature coefficient to 2 - 2 least significant bits 00075 pcd8544_send_command(0b00000110); // 0x06 00076 00077 // Set bias mode to 3 (1:48) - 3 least significant bits 00078 pcd8544_send_command(0b00010011); // 0x13 00079 00080 // Function set: PD=0 (chip active), V=1 (vertical addressing), H=0 (basic instructions) 00081 pcd8544_send_command(0b00100010); // 0x20 00082 00083 // Display control: D=0, E=0 (Blank the screen) 00084 pcd8544_send_command(0b00001000); // 0x08 00085 00086 // Display control: D=1, E=0 (Normal mode) 00087 pcd8544_send_command(0b00001100); 00088 00089 }
void pcd8544_send_byte | ( | uns8 | b | ) |
00107 { 00108 00109 uns8 count; 00110 00111 // msb sent first 00112 for (count = 0; count < 8; count++) { 00113 change_pin(pcd8544_sdin_port, pcd8544_sdin_pin, b.7); 00114 b = b << 1; 00115 // toggle the clock 00116 set_pin(pcd8544_sclk_port, pcd8544_sclk_pin); 00117 clear_pin(pcd8544_sclk_port, pcd8544_sclk_pin); 00118 } 00119 }
void pcd8544_send_command | ( | uns8 | cmd | ) |
00091 { 00092 00093 clear_pin(pcd8544_sce_port, pcd8544_sce_pin); 00094 clear_pin(pcd8544_dc_port, pcd8544_dc_pin); 00095 pcd8544_send_byte(cmd); 00096 set_pin(pcd8544_sce_port, pcd8544_sce_pin); 00097 }
void pcd8544_send_data | ( | uns8 | data | ) |
00099 { 00100 00101 clear_pin(pcd8544_sce_port, pcd8544_sce_pin); 00102 set_pin(pcd8544_dc_port, pcd8544_dc_pin); 00103 pcd8544_send_byte(data); 00104 set_pin(pcd8544_sce_port, pcd8544_sce_pin); 00105 }
void pcd8544_setup_io | ( | ) |
00040 { 00041 00042 // Do this in software for the moment 00043 00044 make_output(pcd8544_res_port, pcd8544_res_pin); 00045 make_output(pcd8544_sclk_port, pcd8544_sclk_pin); 00046 make_output(pcd8544_sdin_port, pcd8544_sdin_pin); 00047 make_output(pcd8544_dc_port, pcd8544_dc_pin); 00048 make_output(pcd8544_sce_port, pcd8544_sce_pin); 00049 00050 set_pin(pcd8544_res_port, pcd8544_res_pin); // not in reset 00051 set_pin(pcd8544_sce_port, pcd8544_sce_pin); // ignore clock for the moment 00052 clear_pin(pcd8544_sclk_port, pcd8544_sclk_pin); // clear clock 00053 }