.. Code und Library usw. als File zu downloaden .. Ordner "piccolo" ..
Grüß Dich Andi.
Also a) ich hatte von Github bis heute noch nix gedownloadet, b) ich bin kein arduino-er. Aber bei mir funzt der Download - zumindest sieht der erhaltene Text ziemlich gut nach einem ordentlichen Programmfile aus.
Vorgehensweise:
1) Ich hab Deinen Link angepickt.
2) Dort habe ich in der Zeile
den Link : Corrected licenses, added license files
...angepickt. Es öffnet sich ne Site bei der in einer der ersten Zeilen steht
..." .. Corrected licenses, added license files ..", darunter
...ne Zeile ".. Showing 35 changed files with 785 additions and 25 deletions ..".
3) Dort gehe ich (NUR beispielsweise) zum dritten Kasten : "Adafruit_DS2413/DS2413/DS2413.ino".
...RECHTS OBEN in dem Kasten steht dieses Drei-Punkte-Zeichen : ··· .
...Das klicke ich an > es kommt ein Flyout in dem oben die Zeile
...Show comments steht .....- - mit einem Häkchen davor. Darunter steht
...IM FLYOUT die Zeile
...View file .........- - die picke ich an.
...Schon kommt ne Zeile mit
...".. evaherrada Corrected licenses, added license files ..".
...In einem Kasten drunter steht rechts [ Raw | Blame]. Picke auf Raw.
...Üblicherweise picke ich rechts und danach auf "In einem neuen Tab öffnen" (ich hab den Firefox)
...und schon habe ich in dem Fenster dies stehen:
Code:
// SPDX-FileCopyrightText: 2014 Bill Earl for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <OneWire.h>
#define DS2413_ONEWIRE_PIN (8)
#define DS2413_FAMILY_ID 0x3A
#define DS2413_ACCESS_READ 0xF5
#define DS2413_ACCESS_WRITE 0x5A
#define DS2413_ACK_SUCCESS 0xAA
#define DS2413_ACK_ERROR 0xFF
OneWire oneWire(DS2413_ONEWIRE_PIN);
uint8_t address[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
void printBytes(uint8_t* addr, uint8_t count, bool newline=0)
{
for (uint8_t i = 0; i < count; i++)
{
Serial.print(addr[i]>>4, HEX);
Serial.print(addr[i]&0x0f, HEX);
Serial.print(" ");
}
if (newline)
{
Serial.println();
}
}
byte read(void)
{
bool ok = false;
uint8_t results;
oneWire.reset();
oneWire.select(address);
oneWire.write(DS2413_ACCESS_READ);
results = oneWire.read(); /* Get the register results */
ok = (!results & 0x0F) == (results >> 4); /* Compare nibbles */
results &= 0x0F; /* Clear inverted values */
oneWire.reset();
// return ok ? results : -1;
return results;
}
bool write(uint8_t state)
{
uint8_t ack = 0;
/* Top six bits must '1' */
state |= 0xFC;
oneWire.reset();
oneWire.select(address);
oneWire.write(DS2413_ACCESS_WRITE);
oneWire.write(state);
oneWire.write(~state); /* Invert data and resend */
ack = oneWire.read(); /* 0xAA=success, 0xFF=failure */
if (ack == DS2413_ACK_SUCCESS)
{
oneWire.read(); /* Read the status byte */
}
oneWire.reset();
return (ack == DS2413_ACK_SUCCESS ? true : false);
}
void setup(void)
{
Serial.begin(9600);
Serial.println(F("Looking for a DS2413 on the bus"));
/* Try to find a device on the bus */
oneWire.reset_search();
delay(250);
if (!oneWire.search(address))
{
printBytes(address, 8);
Serial.println(F("No device found on the bus!"));
oneWire.reset_search();
while(1);
}
/* Check the CRC in the device address */
if (OneWire::crc8(address, 7) != address[7])
{
Serial.println(F("Invalid CRC!"));
while(1);
}
/* Make sure we have a DS2413 */
if (address[0] != DS2413_FAMILY_ID)
{
printBytes(address, 8);
Serial.println(F(" is not a DS2413!"));
while(1);
}
Serial.print(F("Found a DS2413: "));
printBytes(address, 8);
Serial.println(F(""));
}
void loop(void)
{
/* Read */
/*
uint8_t state = read();
if (state == -1)
Serial.println(F("Failed reading the DS2413"));
else
Serial.println(state, BIN);
*/
/* Write */
bool ok = false;
ok = write(0x3);
if (!ok) Serial.println(F("Wire failed"));
delay(1000);
ok = write(0x0);
if (!ok) Serial.println(F("Wire failed"));
delay(1000);
}
Und das sieht doch ziemlich verdächtig nach compilierbarem Quelltext aus. Ob es eine einfachere Methode gibt, insbes. für ein komplettes Projekt, weiß ich nicht.
Klappt das dann bei Dir ?
Lesezeichen