Go to most recent revision |
Blame |
Last modification |
View Log
| RSS feed
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
#include "main.h"
#include "base64.h"
#include "lcd.h"
#include "rs232.h"
// Insgesamt 32 Werte können angezeigt werden
// jeweils 8 Stück werden gleichzeitg angezeigt
// Auswahl über Tasten
uint8_t displ_page
;
void displ_get_text
(uint8_t number
)
{
uint8_t text
[17];
uint8_t i
;
p_buffer
[0] = '#';
p_buffer
[1] = 'a';
p_buffer
[2] = 'a';
p_buffer
[3] = number
;
p_buffer
[4] = 0;
p_buffer
[5] = 0;
base64_send
(6);
do
{
get_message
();
}
while (r_buffer
[1] != 'A');
for (i
=0;i
<16;i
++)
text
[i
] = p_buffer
[i
];
text
[16] = 0x00;
lcd_print_at
(0,(number
& 0x07),text
,0);
}
void displ_values
(void)
{
uint8_t displ_page
, i
;
int16_t value
;
uint8_t text
[17];
displ_page
= 0; // Page 0..3 (4 Pages zu je 8 Werte)
lcd_cls
(); // LCD löschen
do
{
for (i
=0;i
<8;i
++) // Texte lesen und anzeigen
displ_get_text
(i
+displ_page
*8);
do
{
get_message
();
if(r_buffer
[1] == 'D')
{
for (i
=0;i
<8;i
++)
{
value
= p_buffer
[i
*2+displ_page
*16+2] + 256*p_buffer
[i
*2+displ_page
*16+3];
itoa(value
,text
,10);
lcd_print_atp
(14,i
,PSTR
(" "),0);
lcd_print_at
(14,i
,text
,0);
}
}
}
while (key
== 0x00);
if (key
== 0x01)
displ_page
++;
if (key
== 0x02)
displ_page
--;
displ_page
&= 0x03;
}
while(key
!= 0x08);
}