1wire_rom.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <arpa/inet.h>


#define I2C_DEVICE "/dev/i2c-1"
#define DS2482_ADDR 0x18

#define NO_USE_SYSLOG
#include "error_reporting.h"

#include "i2c-1wire.h"

int main(int argc, char **argv) {
  int i2c_fd, ret, i;
  
  /// otwarcie i konfiguracja mosta i2c - 1wire
  i2c_fd = open_i2c_device(I2C_DEVICE, DS2482_ADDR);
  if (i2c_fd < 0) {
    printf("ERROR WHILE OPENING I2C (%d)\n", i2c_fd);
    return 5;
  }
  if (ret = i2c_smbus_write_byte(i2c_fd, DS2482_RESET)) {
    printf("ERROR IN I2C COMMUNICATION (%d)\n", ret);
    return 5;
  }
  if (ret = i2c_smbus_write_byte_data(i2c_fd, DS2482_WRITE_CONFIG, 0xe1) < 0) {
    printf("ERROR IN I2C COMMUNICATION (%d)\n", ret);
    return 5;
  }
  
  /// odczyt ROMu urządzenia 1wire
  uint8_t ow_buf[12];
  if (ret= ds2482_reset(i2c_fd)) {
    printf("ERROR IN RESET (%d)\n", ret);
    return 5;
  }
  
  ow_buf[0]=0x33;
  for (i=1; i <10; i++) {
    ow_buf[i] = 0xff;
  }
  for (i=0; i <12; i++) {
    ret = ds2482_send_and_get(i2c_fd, ow_buf[i]);
    if (ret<0) {
      printf("ERROR IN SET/GET (%d)\n", ret);
      return 6;
    }
    ow_buf[i] = ret;
  }
  printf("1-WIRE ROM ADDRESS: ");
  for (i=1; i <9; i++) {
    printf("0x%X ", ow_buf[i]);
  }
  printf("\n");
  
  return 0;
}

XHTML generated by highlight (http://www.andre-simon.de/) from 1wire_rom.c



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/usage_and_config/monitoring/one_wire/1wire_rom.c) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2014-01-07 19:27:42 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).