Attiny85 mit Analog Messung stellt arbeit ein bei zu Niedrigem wert

Gast #5461441
Lesenswert?

Hallo ich habe einen Helligkeitssensor OPT101 welchen ich mit einem 
ATTiny85 einlesen will.
das Funktioniert auch in der Theorie.
Problem sobald es zu dunkel wird, stellt der Attiny seine Arbeit ein.
Also ein Blinken der LED auf zeit bzw. Taster Hört ebenfalls auf.
Quellcode ist hier zu Finden: 
https://gitlab.com/attinyplatine/PlatineComplete

ich gehe davon aus, das es nur eine Kleinigkeit ist, und mir nur jemand 
vom Schlauch runterhelfen muss :-D
Vielen Dank dafür schonmal
Angehängte Dateien:
Gast #5461472
Lesenswert?

Es könnte ein Fehler im nicht gezeigten Quelltext sein.

PB5 ist normalerweise der Reset Eingang. Hast du die Reset-Disable Fuse 
gesetzt?

Aber Achtung: Ohne Reset funktioniert die ISP Schnittstelle nicht mehr, 
dann brauchst du einen High-Voltage Programmieradapter.

PS: Der Schaltpan ist grausam unübersichtlich und die Details der 
"Messstelle" fehlen.
#5461478
Lesenswert?

Ich habe den Quellcode im verlinkten Git.
https://gitlab.com/attinyplatine/PlatineComplete
die Initialisierung des ADC ist folgende:
1
 //Analog Comparator (vergleich von 2 Spannungen) Ausschaltgen, Verbraucht nur Strom.
2
  //ACSR = 1 << ACD;
3
  // Pin Konfiguration für den ADC Auswählen.
4
  // VCC Als AREF und PB5 als Eingang.
5
  //ADMUX = 0x00;
6
  ADMUX = (1<<ADLAR); // 8Bit Linksshift mode
7
  ADCSRB = 0;  //FRee Running Mode
8
  // ADC Control and Status Register A
9
  // ADC Einschalten (ADEN), MEssvorgang Starten (ADSC), FreeRUN Aktiviert(ADATE), Teilungsfaktor 64.
10
  // es sollte als Takt am ADC ein wert zwischen 50-200 khz anliegen.
11
  // bei 8 MHZ und einen Teiler von 64 sind wir bei 125 khz (ADPS...)
12
  // bei 16 MHZ und einen Teiler von 128 sind wir bei 125 khz (ADPS...)
13
  ADCSRA = (1 << ADEN) | (1<< ADSC) | (1<<ADATE) | (0<<ADPS2) | (1<ADPS1) | (1<ADPS0);  //Teiler 8
gelesen wird dann einfach mittels:
1
uint8_t  lightGetADCValue(){
2
  return ADCH;
3
}
Gast #5461484
Lesenswert?

Das ist viel zu viel Quelltext, um ihn "mal eben" schnell per 
Sichtkontrolle zu prüfen. Reduziere den Code auf ein minimal knappes 
Beispiel, wo der Fehler noch auftritt.

Wahrscheinlich wird du bei der Schrittweisen Reduktion schon den Fehler 
finden.

Was ist mit PB5, zieht deine Messstellen den Pin runter? Wolltest du ihn 
als Reset-Eingang oder als I/O Pin nutzen?

Wir brauchen den Schaltplan oder detaillierte technische Daten der 
Messstelle, um abzuschätzen, was sie mit den Leitungen anstellt.
Gast #5461509
Lesenswert?

Ich habe für so etwas einen Atmel Dragon verwendet.

Aber ich bin ganz schnell dazu über gegangen, lieber größere 
Mikrocontroller zu verwenden, damit ich den Reset Pin und die ISP 
Schnittstelle nicht deaktivieren muss.

> Haben die irgendwelche Nachteile?

Du muss den Chip zum Programmieren aus der Schaltung entfernen. Und sie 
sind viel empfindlicher, als der unkaputtbare Klassiker Atmel ISP mkII.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren