M
member_tdh
Guest
Hallo iedereen!
Op het moment, ik ben
bezig met de sensor SHT71 voor het meten van temperatuur en vochtigheid.Maar het
is niet het werk nog niet.
Ik
kom na mijn volledige code en kan iemand me helpen, alstublieft?
I'm verry dank!
//================================= SHT7x =============
void comstart (void)
(
DDRA | = 0x02; / / DATA-lijn in de output
sht_data = 1;
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 0;
# asm ( "nop");
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 1;
# asm ( "nop");
sht_clk = 0;
)
void comreset (void)
(
unsigned char i;
DDRA | = 0x02; / / DATA-lijn in de output
sht_data = 1;
sht_clk = 0;
for (i = 0; i <12; i ) / / 9 klok cycli
(
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
comstart (); / / transmissie start
HumiError = FALSE;
)
void sht_soft_reset (void)
(
comreset (); / / SHT75 communicatie reset
comwrite (RESET); / / verzenden SHT75 reset commando
delay_ms (15); / / pauze 15ms
)
void sht_init (void)
(
/ / Sht_soft_reset (); / / reset SHT75
comreset (); / / SHT75 communicatie reset
delay_ms (20); / / vertraging voor de power-up
)
void comwait (void)
(
unsigned int sht_delay;
sht_data = 1;
sht_clk = 0;
voor (sht_delay = 0; sht_delay <30000; sht_delay ) / / 30ms
(
if (! sht_data) break;
/ /
If ((sht_data_in & 0x02) == 0) break;
)
)
/ *
unsigned char comwrite (unsigned char data)
(
unsigned char fout, i;
fout = 0;
DDRA | = 0x02; / / DATA-lijn in de output
for (i = 0; i <8; i )
(
if (data & 0x80) sht_data = 1;
anders sht_data = 0;
gegevens <<= 1;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / verschuiving in ACK
sht_data = 1; / / release DATA-lijn
DDRA & = ~ 0x02; / / data-line-in ingang
# asm ( "nop");
sht_clk = 1; / / klok 9e voor ACK
# asm ( "nop");
fout = (sht_data_in & 0x02); / / check ack (De gegevens zullen worden getrokken door SHT11)
# asm ( "nop");
sht_clk = 0;
terugkeer fout; / / fout = 1 in het geval geen ACK
)
* /
void comwrite (unsigned char data)
(
unsigned char i;
DDRA | = 0x02; / / DATA-lijn in de output
for (i = 0x80; i> 0; i / = 2)
(
if (data & i) sht_data = 1;
anders sht_data = 0;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / verschuiving in ACK
/ / Sht_data = 1; / / release DATA-lijn
DDRA & = ~ 0x02; / / data-line-in ingang
# asm ( "nop");
sht_clk = 1; / / klok 9e voor ACK
if (sht_data_in & 0x02) HumiError = true; / / check ack (De gegevens zullen worden getrokken door SHT11)
sht_clk = 0;
)
unsigned int comread (unsigned char ACK)
(
unsigned char i;
unsigned int byte = 0;
DDRA & = ~ 0x02; / / data-line-in ingang
for (i = 0x80; i> 0; i / = 2)
(
sht_clk = 1;
if (sht_data_in & 0x02) byte | = i / / lees bits
sht_clk = 0;
)
DDRA | = 0x02; / / DATA-lijn in de output
sht_data =! ack; / / "ack == 1" pull-down DATA-Line
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
DDRA & = ~ 0x02; / / data-line-in ingang
terugkeer byte;
)
//------------------------------------------------ ----------------------------------
/ / Maakt een meting (vochtigheid / temperatuur) met controlesom
//------------------------------------------------ ----------------------------------
/ *
char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char-modus)
(
unsigned fout = 0;
comstart (); / / transmissie start
schakelaar (mode)
(/ / Stuurt commando sensor
geval TEMP:
fout = comwrite (MEASURE_TEMP);
break;
geval HUMI:
fout = comwrite (MEASURE_HUMI);
break;
standaard:
break;
)
DDRA & = 0xfd; / / data-line-in ingang
PORTA | = 0x02; / / release DATA-lijn
comwait (); / / wacht tot de meting te voltooien
if (sht_data_in) fout = 1; / / of time-out (~ 2 sec.) is bereikt
* (p_value 1) = comread (ACK); / / lees de eerste byte (MSB)
* (p_value) = comread (ACK); / / lees de tweede byte (LSB)
* p_checksum = comread (NOACK); / / lees controlesom
terugkeer fout;
)
* /
unsigned int s_measure (unsigned char-modus)
(
unsigned char MSB = 0, lsb = 0, CRC;
comstart (); / / transmissie start
schakelaar (mode)
(
geval TEMP:
comwrite (MEASURE_TEMP);
break;
geval HUMI:
comwrite (MEASURE_HUMI);
break;
standaard:
break;
)
DDRA & = 0xfd; / / data-line-in ingang
PORTA | = 0x02; / / release DATA-lijn
comwait (); / / wacht tot de meting te voltooien
MSB = comread (ACK); / / lees de eerste byte (MSB)
lsb = comread (ACK); / / lees de tweede byte (LSB)
CRC = comread (NOACK); / / lees controlesom
/ / Return (((unsigned int) MSB <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Koel" border="0" />
& 0xff00 | lsb);
return (MSB * 256 lsb);
)
void HumidityGet (float * p_humidity, float * p_temperature)
(
unsigned int = 0 vochtigheid, temperatuur = 0;
vochtigheid = s_measure (HUMI); / / maatregel vochtigheid
temperatuur = s_measure (TEMP); / / maatregel temperatuur
if (HumiError == TRUE) comreset (); / / in geval van een fout: Reset
anders
(
* p_humidity = (float) vochtigheid / / zet integer te zweven
* p_temperature = (float) temperatuur; / / zet integer te zweven
calc_sth11 (p_humidity, p_temperature); / / berekenen vochtigheid, temperatuur
)
)
//------------------------------------------------ ----------------------------------------
/ / Berekent de temperatuur [° C] en vochtigheid [% RH]
/ / Input: humi [Teken] (12 bits)
/ / Temp [Teken] (14 bits)
/ / Output: humi [% RH]
/ / Temp [° C]
//------------------------------------------------ ----------------------------------------
void calc_sth11 (float * p_humidity, float * p_temperature)
(
float rh_lin; / / rh_lin: Vochtigheid lineaire
float rh_true; / / rh_true: Temperatuur gecompenseerd vochtigheid
float t_C; / / t_C: Temperatuur [° C]
/ / TC = -40,00 0,01 * SHT;
t_C =* p_temperature * 0.01
tot 40 / / calc.temperatuur van teken aan [° C]
rh_lin = C3 * (* p_humidity) * (* p_humidity) C2 * (* p_humidity) C1 / / calc.vochtigheid van teken voor [% RH]
/ / Rh_true = (t_C - 25) * (0,01 0,00128 * SOrh) RH_linear;
rh_true = (t_C-25) * (T1 T2 * (* p_humidity)) rh_lin / / calc.temperatuur gecompenseerd vochtigheid [% RH]
if (rh_true> 100) rh_true = 100; / / gesneden als de waarde buiten
if (rh_true <0,1) rh_true = 0,1 / / de fysieke mogelijk bereik
* p_temperature = t_C / / retour temperatuur [° C]
* p_humidity = rh_true / / rendement vochtigheid [% RH]
)# ifndef _SHT7x_INCLUDED_
# define _SHT7x_INCLUDED_
/ / SHT7x
# define sht_clk PORTA.0
# define sht_data PORTA.1
# define sht_data_in PINA.1
# define NOACK 0
# define ACK 1
# define FALSE 0
# define TRUE 1
unsigned char HumiError = FALSE;
/ / ADR commando R / W
# define STATUS_REG_W 0x06 / / 000 0011 0
# define STATUS_REG_R 0x07 / / 000 0011 1
# define MEASURE_TEMP 0x03 / / 000 0001 1
# define MEASURE_HUMI 0x05 / / 000 0010 1
# define RESET 0x1E / / 000 1111 0
const float C1 =- 4.0; / / voor 12 bits
const float C2 = 0.0405 / / 12 Bit
const float C3 =- 0.0000028 / / 12 Bit
const float T1 = 0.01; / / 14 Bit @ 5V
const float T2 = 0.00008 / / 14 Bit @ 5V
void comstart (void);
void comreset (void);
void sht_init (void);
void sht_soft_reset (void);
void comwait (void);
/ / unsigned char comwrite (unsigned char data);
void comwrite (unsigned char data);
unsigned int comread (unsigned char ack);
/ / char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char modus);
unsigned int s_measure (unsigned char modus);
void HumidityGet (float * p_humidity, float * p_temperature);
void calc_sth11 (float * p_humidity, float * p_temperature);
typedef unie (
unsigned int i;
float f;
) Weer;
enum (TEMP, HUMI);
# endif/ / SLAVE 1
/************************************************* ****
Chip type: ATmega8535
Soort programma: Toepassing
Klokfrequentie: 8.000000 MHz
Memory model: Kleine
Externe SRAM grootte: 0
Gegevens Stack size: 128
************************************************** *** /
#
include "mega8535.h"
#
include "global.h"
#
include "stdio.h"
#
include "SHT71.c"
#
include "eeprom.h"
#
include "bcd.h"
/ / Alfanumeriek LCD Module functies
# asm
. EQU __lcd_port = 0x18; PORTB
# endasm
#
include "lcd.h"
char lcd_buffer [33];
//================================================ ============================================
void main (void)
(
float vochtigheid, temperatuur;
/ / Weer humi_val, temp_val;
/ / unsigned char fout, checksum;Initio ();
DDRA.0 = 1; / / SCK is een output
PORTA.0 = 0; / / ClockLow
PORTA.1 = 0; / / altijd op nul
/ / Toggle DDRA.1 voor Data
sht_init ();
delay_ms (100) / / vertraging wanneer de stroom ingeschakeld
lcd_clear ();
lcd_gotoxy (0, 1);
lcd_putsf ( "Initialize ......");
delay_ms (3000);
lcd_clear ();while (1)
(
/ *
fout = 0;
fout = s_measure ((unsigned char *) & humi_val.i, & controlesom, HUMI);
fout = s_measure ((unsigned char *) & temp_val.i, & controlesom, TEMP);
if (fout! = 0) comreset ();
anders
(
humi_val.f = (float) humi_val.i;
temp_val.f = (float) temp_val.i;
calc_sth11 (& humi_val.f, & temp_val.f);
lcd_clear ();
sprintf (lcd_buffer, "T:% 3.1fC", temp_val.f);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 3.1f%%", humi_val.f);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300);
)
* /
comreset (); / / reset-sensor
if (HumiError == TRUE) sht_init ();
HumidityGet (& Vochtigheid, & temperatuur);
lcd_clear ();
sprintf (lcd_buffer, "T:% 5.1fC", temperatuur);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 5.1f%%", vochtigheid);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300)
/ / einde terwijl
) / / einde belangrijkste//================================================ ============================================
void initio (void)
(
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0xFF;
/ / Port C initialisatie
/ / Func7 In Func6 = = = In Func5 In Func4 = In Func3 = out Func2 = out Func1 = out Func0 = out
/ / State7 = P State6 = P State5 = P State4 = P State3 = 0 state2 = 0 state1 = 0 State0 = 0
PORTC = 0xF0;
DDRC = 0x0F;
/ / Port D initialization
/ / Func7 = out Func6 = In Func5 = In Func4 = In Func3 = out Func2 = In Func1 = out Func0 = out
/ / State7 = 1 State6 = P State5 = P State4 = P State3 = 1 state2 = P state1 = 1 State0 = 1
PORTD = 0xFF;
DDRD = 0x8B;/ / LCD module initialisatie
lcd_init (16);
/ / Global interrupts inschakelen
# asm ( "sei")
)
Op het moment, ik ben
bezig met de sensor SHT71 voor het meten van temperatuur en vochtigheid.Maar het
is niet het werk nog niet.
Ik
kom na mijn volledige code en kan iemand me helpen, alstublieft?
I'm verry dank!
//================================= SHT7x =============
void comstart (void)
(
DDRA | = 0x02; / / DATA-lijn in de output
sht_data = 1;
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 0;
# asm ( "nop");
sht_clk = 0;
# asm ( "nop");
sht_clk = 1;
# asm ( "nop");
sht_data = 1;
# asm ( "nop");
sht_clk = 0;
)
void comreset (void)
(
unsigned char i;
DDRA | = 0x02; / / DATA-lijn in de output
sht_data = 1;
sht_clk = 0;
for (i = 0; i <12; i ) / / 9 klok cycli
(
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
comstart (); / / transmissie start
HumiError = FALSE;
)
void sht_soft_reset (void)
(
comreset (); / / SHT75 communicatie reset
comwrite (RESET); / / verzenden SHT75 reset commando
delay_ms (15); / / pauze 15ms
)
void sht_init (void)
(
/ / Sht_soft_reset (); / / reset SHT75
comreset (); / / SHT75 communicatie reset
delay_ms (20); / / vertraging voor de power-up
)
void comwait (void)
(
unsigned int sht_delay;
sht_data = 1;
sht_clk = 0;
voor (sht_delay = 0; sht_delay <30000; sht_delay ) / / 30ms
(
if (! sht_data) break;
/ /
If ((sht_data_in & 0x02) == 0) break;
)
)
/ *
unsigned char comwrite (unsigned char data)
(
unsigned char fout, i;
fout = 0;
DDRA | = 0x02; / / DATA-lijn in de output
for (i = 0; i <8; i )
(
if (data & 0x80) sht_data = 1;
anders sht_data = 0;
gegevens <<= 1;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / verschuiving in ACK
sht_data = 1; / / release DATA-lijn
DDRA & = ~ 0x02; / / data-line-in ingang
# asm ( "nop");
sht_clk = 1; / / klok 9e voor ACK
# asm ( "nop");
fout = (sht_data_in & 0x02); / / check ack (De gegevens zullen worden getrokken door SHT11)
# asm ( "nop");
sht_clk = 0;
terugkeer fout; / / fout = 1 in het geval geen ACK
)
* /
void comwrite (unsigned char data)
(
unsigned char i;
DDRA | = 0x02; / / DATA-lijn in de output
for (i = 0x80; i> 0; i / = 2)
(
if (data & i) sht_data = 1;
anders sht_data = 0;
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
)
/ / verschuiving in ACK
/ / Sht_data = 1; / / release DATA-lijn
DDRA & = ~ 0x02; / / data-line-in ingang
# asm ( "nop");
sht_clk = 1; / / klok 9e voor ACK
if (sht_data_in & 0x02) HumiError = true; / / check ack (De gegevens zullen worden getrokken door SHT11)
sht_clk = 0;
)
unsigned int comread (unsigned char ACK)
(
unsigned char i;
unsigned int byte = 0;
DDRA & = ~ 0x02; / / data-line-in ingang
for (i = 0x80; i> 0; i / = 2)
(
sht_clk = 1;
if (sht_data_in & 0x02) byte | = i / / lees bits
sht_clk = 0;
)
DDRA | = 0x02; / / DATA-lijn in de output
sht_data =! ack; / / "ack == 1" pull-down DATA-Line
sht_clk = 1;
# asm ( "nop");
sht_clk = 0;
DDRA & = ~ 0x02; / / data-line-in ingang
terugkeer byte;
)
//------------------------------------------------ ----------------------------------
/ / Maakt een meting (vochtigheid / temperatuur) met controlesom
//------------------------------------------------ ----------------------------------
/ *
char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char-modus)
(
unsigned fout = 0;
comstart (); / / transmissie start
schakelaar (mode)
(/ / Stuurt commando sensor
geval TEMP:
fout = comwrite (MEASURE_TEMP);
break;
geval HUMI:
fout = comwrite (MEASURE_HUMI);
break;
standaard:
break;
)
DDRA & = 0xfd; / / data-line-in ingang
PORTA | = 0x02; / / release DATA-lijn
comwait (); / / wacht tot de meting te voltooien
if (sht_data_in) fout = 1; / / of time-out (~ 2 sec.) is bereikt
* (p_value 1) = comread (ACK); / / lees de eerste byte (MSB)
* (p_value) = comread (ACK); / / lees de tweede byte (LSB)
* p_checksum = comread (NOACK); / / lees controlesom
terugkeer fout;
)
* /
unsigned int s_measure (unsigned char-modus)
(
unsigned char MSB = 0, lsb = 0, CRC;
comstart (); / / transmissie start
schakelaar (mode)
(
geval TEMP:
comwrite (MEASURE_TEMP);
break;
geval HUMI:
comwrite (MEASURE_HUMI);
break;
standaard:
break;
)
DDRA & = 0xfd; / / data-line-in ingang
PORTA | = 0x02; / / release DATA-lijn
comwait (); / / wacht tot de meting te voltooien
MSB = comread (ACK); / / lees de eerste byte (MSB)
lsb = comread (ACK); / / lees de tweede byte (LSB)
CRC = comread (NOACK); / / lees controlesom
/ / Return (((unsigned int) MSB <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Koel" border="0" />
& 0xff00 | lsb);
return (MSB * 256 lsb);
)
void HumidityGet (float * p_humidity, float * p_temperature)
(
unsigned int = 0 vochtigheid, temperatuur = 0;
vochtigheid = s_measure (HUMI); / / maatregel vochtigheid
temperatuur = s_measure (TEMP); / / maatregel temperatuur
if (HumiError == TRUE) comreset (); / / in geval van een fout: Reset
anders
(
* p_humidity = (float) vochtigheid / / zet integer te zweven
* p_temperature = (float) temperatuur; / / zet integer te zweven
calc_sth11 (p_humidity, p_temperature); / / berekenen vochtigheid, temperatuur
)
)
//------------------------------------------------ ----------------------------------------
/ / Berekent de temperatuur [° C] en vochtigheid [% RH]
/ / Input: humi [Teken] (12 bits)
/ / Temp [Teken] (14 bits)
/ / Output: humi [% RH]
/ / Temp [° C]
//------------------------------------------------ ----------------------------------------
void calc_sth11 (float * p_humidity, float * p_temperature)
(
float rh_lin; / / rh_lin: Vochtigheid lineaire
float rh_true; / / rh_true: Temperatuur gecompenseerd vochtigheid
float t_C; / / t_C: Temperatuur [° C]
/ / TC = -40,00 0,01 * SHT;
t_C =* p_temperature * 0.01
tot 40 / / calc.temperatuur van teken aan [° C]
rh_lin = C3 * (* p_humidity) * (* p_humidity) C2 * (* p_humidity) C1 / / calc.vochtigheid van teken voor [% RH]
/ / Rh_true = (t_C - 25) * (0,01 0,00128 * SOrh) RH_linear;
rh_true = (t_C-25) * (T1 T2 * (* p_humidity)) rh_lin / / calc.temperatuur gecompenseerd vochtigheid [% RH]
if (rh_true> 100) rh_true = 100; / / gesneden als de waarde buiten
if (rh_true <0,1) rh_true = 0,1 / / de fysieke mogelijk bereik
* p_temperature = t_C / / retour temperatuur [° C]
* p_humidity = rh_true / / rendement vochtigheid [% RH]
)# ifndef _SHT7x_INCLUDED_
# define _SHT7x_INCLUDED_
/ / SHT7x
# define sht_clk PORTA.0
# define sht_data PORTA.1
# define sht_data_in PINA.1
# define NOACK 0
# define ACK 1
# define FALSE 0
# define TRUE 1
unsigned char HumiError = FALSE;
/ / ADR commando R / W
# define STATUS_REG_W 0x06 / / 000 0011 0
# define STATUS_REG_R 0x07 / / 000 0011 1
# define MEASURE_TEMP 0x03 / / 000 0001 1
# define MEASURE_HUMI 0x05 / / 000 0010 1
# define RESET 0x1E / / 000 1111 0
const float C1 =- 4.0; / / voor 12 bits
const float C2 = 0.0405 / / 12 Bit
const float C3 =- 0.0000028 / / 12 Bit
const float T1 = 0.01; / / 14 Bit @ 5V
const float T2 = 0.00008 / / 14 Bit @ 5V
void comstart (void);
void comreset (void);
void sht_init (void);
void sht_soft_reset (void);
void comwait (void);
/ / unsigned char comwrite (unsigned char data);
void comwrite (unsigned char data);
unsigned int comread (unsigned char ack);
/ / char s_measure (unsigned char * p_value, unsigned char * p_checksum, unsigned char modus);
unsigned int s_measure (unsigned char modus);
void HumidityGet (float * p_humidity, float * p_temperature);
void calc_sth11 (float * p_humidity, float * p_temperature);
typedef unie (
unsigned int i;
float f;
) Weer;
enum (TEMP, HUMI);
# endif/ / SLAVE 1
/************************************************* ****
Chip type: ATmega8535
Soort programma: Toepassing
Klokfrequentie: 8.000000 MHz
Memory model: Kleine
Externe SRAM grootte: 0
Gegevens Stack size: 128
************************************************** *** /
#
include "mega8535.h"
#
include "global.h"
#
include "stdio.h"
#
include "SHT71.c"
#
include "eeprom.h"
#
include "bcd.h"
/ / Alfanumeriek LCD Module functies
# asm
. EQU __lcd_port = 0x18; PORTB
# endasm
#
include "lcd.h"
char lcd_buffer [33];
//================================================ ============================================
void main (void)
(
float vochtigheid, temperatuur;
/ / Weer humi_val, temp_val;
/ / unsigned char fout, checksum;Initio ();
DDRA.0 = 1; / / SCK is een output
PORTA.0 = 0; / / ClockLow
PORTA.1 = 0; / / altijd op nul
/ / Toggle DDRA.1 voor Data
sht_init ();
delay_ms (100) / / vertraging wanneer de stroom ingeschakeld
lcd_clear ();
lcd_gotoxy (0, 1);
lcd_putsf ( "Initialize ......");
delay_ms (3000);
lcd_clear ();while (1)
(
/ *
fout = 0;
fout = s_measure ((unsigned char *) & humi_val.i, & controlesom, HUMI);
fout = s_measure ((unsigned char *) & temp_val.i, & controlesom, TEMP);
if (fout! = 0) comreset ();
anders
(
humi_val.f = (float) humi_val.i;
temp_val.f = (float) temp_val.i;
calc_sth11 (& humi_val.f, & temp_val.f);
lcd_clear ();
sprintf (lcd_buffer, "T:% 3.1fC", temp_val.f);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 3.1f%%", humi_val.f);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300);
)
* /
comreset (); / / reset-sensor
if (HumiError == TRUE) sht_init ();
HumidityGet (& Vochtigheid, & temperatuur);
lcd_clear ();
sprintf (lcd_buffer, "T:% 5.1fC", temperatuur);
lcd_gotoxy (0,0);
lcd_puts (lcd_buffer);
sprintf (lcd_buffer, "H:% 5.1f%%", vochtigheid);
lcd_gotoxy (0,1);
lcd_puts (lcd_buffer);
delay_ms (300)
) / / einde belangrijkste//================================================ ============================================
void initio (void)
(
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0xFF;
/ / Port C initialisatie
/ / Func7 In Func6 = = = In Func5 In Func4 = In Func3 = out Func2 = out Func1 = out Func0 = out
/ / State7 = P State6 = P State5 = P State4 = P State3 = 0 state2 = 0 state1 = 0 State0 = 0
PORTC = 0xF0;
DDRC = 0x0F;
/ / Port D initialization
/ / Func7 = out Func6 = In Func5 = In Func4 = In Func3 = out Func2 = In Func1 = out Func0 = out
/ / State7 = 1 State6 = P State5 = P State4 = P State3 = 1 state2 = P state1 = 1 State0 = 1
PORTD = 0xFF;
DDRD = 0x8B;/ / LCD module initialisatie
lcd_init (16);
/ / Global interrupts inschakelen
# asm ( "sei")
)