- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: Merkwürdiges verhalten von LineData

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Zweiter Versuch:
    Bei ersten Durchlauf bekomme ich tatsächlich einen vernünftigen Wert für den linken Fototransistor geliefert,
    Gibt es so immer noch einen "vernünftigen" Wert bei der ersten Lesung?
    Code:
    	while (1) 
    	{ data[0] = 0; 
    	  data[1] = 0; 
    	  LineData(data);
    	  LineData(data);
    	  SerWrite("Links ", 6); 
    	  warte(100);
    	  writeUint(data[0]);
    Hintergrund: Die erste Lesung nach dem Umschalten des ADC-Kanal (oder der Referenz) kann fehlerhaft sein. Wenn mit dieser Änderung für Links kein vernünftiger erster Wert gelesen werden kann, sind vielleicht die Liniensensoren T9 und T10 falschrum eingelötet. Die würden dann, unabhängig von der Beleuchtungsstärke, immer sperren und die Pegel an ADC2 und ADC2 wären durch die PullDowns R14 und R15 immer auf Null Volt.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Hm, leider nein,

    ich versteh es auch nicht, ich hab jetzt den Schaltplan nochmal durchgecheckt, die Widerstände 14 und 15 sind die richtigen, 20kOhm, und die Fototransistoren sind auch richtig rum drin. Mir ist das ganze ein Rätsel gerade.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Code:
    	  if (data[1] > 500)
    	  { if (data[1] >1024)
    			StatusLED(GREEN);
    		else
    			StatusLED(YELLOW); 
    		
    		}
    	  else
    		if (data[1] >1 || data[0] > 1)
    		StatusLED(RED);
    		else StatusLED(OFF);
    Da die Linienwerte beim orginal bestückten asuro nie 500 erreichen, sollte der erste if-Zweig nie ausgeführt werden. Mehr als 1023 werden es sicher auch nie sein, denn die Funktion liefert nur einen 10-Bit-Wert. Also reduzieren wir mal aufs wesentliche:

    Code:
    unsigned int data[2];
    	while (1) 
    	{ 
    	LineData(data);
    	data[0]=2; // Test der Funktionalität der Anzeige
    	if (data[1] >1 || data[0] > 1)
    	StatusLED(RED);
    	else {StatusLED(OFF); while(1);} // Programmende! 
    	
    	while(PollSwitch() < 1) warte(1); 
    	}
    Funktioniert die Anzeige mit der StatusLED wie erwartet, wenn man data[0] auf 2 setzt?

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Merkwürdiges Verhalten beim XMega128A1
    Von Kampi im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 04.05.2012, 23:11
  2. Merkwürdiges Verhalten vom RFM12
    Von KissenKarl im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 03.11.2010, 21:26
  3. Merkwürdiges Verhalten Bascom (1=0)
    Von ||kugelfisch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 16.12.2008, 19:57
  4. "Merkwürdiges" Verhalten?
    Von ikarus_177 im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 30.07.2008, 21:08
  5. Atmega128 Progarmmierung, merkwürdiges Verhalten
    Von atlantex im Forum AVR Hardwarethemen
    Antworten: 57
    Letzter Beitrag: 17.12.2005, 15:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress