Tastendruck.c


1
/*
2
 * Tastendruck.c
3
 *
4
 * Created: 22.07.2013 10:29:18
5
 *  Author: vitalij.koenig
6
 */ 
7
8
9
#include <avr/io.h>
10
#include "SMBmaster.h"
11
#define AdresseSlave_0  0x12    //Device Slave Adresse BQ24745
12
13
void Schnellladen (void);
14
uint8_t Tastendruck = 0;
15
16
17
18
19
void Schnellladen (void)
20
{
21
        if ( !(PIND & (1 << PIND1)) && PIND & (1 << PIND5))
22
        {
23
          Tastendruck++;      
24
    }
25
        
26
      if (  PIND & (1 << PIND5) && Tastendruck > 0)
27
      {
28
        smb_start_wait(AdresseSlave_0+SMB_WRITE);      //Sende Start Bedingung und Slave Device Adresse solange bis ACK vom Slave kommt
29
        smb_write(0x14); //default 0x14                //Sende Command Byte für ChargeCurrent
30
        smb_write(0x00); //default 0x80 (0 mA)         //Sende Low Byte für ChargeCurrent
31
        smb_write(0x04); //default 0x04 (1000 mA)     //Sende High Byte für ChargeCurrent
32
        smb_stop();                       //Sende Stop Bedingung Kommunikation beenden
33
      
34
        smb_start_wait(AdresseSlave_0+SMB_WRITE);      //Sende Start Bedingung und Slave Device Adresse solange bis ACK vom Slave kommt
35
        smb_write(0x15); //default 0x15                //Sende Command Byte für ChargeVoltage
36
        smb_write(0xB0); //default 0x00  (176 mV)     //Sende Low Byte für ChargeVoltage
37
        smb_write(0x20); //default 0x20 (8192 mV)      //Sende High Byte für ChargeVoltage
38
        smb_stop();                       //Sende Stop Bedingung Kommunikation beenden
39
      
40
        smb_start_wait(AdresseSlave_0+SMB_WRITE);      //Sende Start Bedingung und Slave Device Adresse solange bis ACK vom Slave kommt
41
        smb_write(0x3F); //default 0x3F                //Sende Command Byte für InputCurrent
42
        smb_write(0x00); //default 0x00           //Sende Low Byte für InputCurrent
43
        smb_write(0x08); //default 0x08 (2048 mA)      //Sende High Byte für InputCurrent
44
        smb_stop();                       //Sende Stop Bedingung Kommunikation beenden */
45
      }
46
    
47
                        
48
49
}