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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.