-
 
          
	
		
		
	
	
	
	
	
		
			
- 
	
	
		
			
			
				Neuer Benutzer
			
			
				Öfters hier
			
			
			
			 
			
				
 
					    
				 
 
			
				
				
				
					AD-Wandler
				
					
						
							Hallo,
 
 ich habe ein C-Prgramm geschrieben, um die Werte am AD-Wandler in einem Feld zu speicheren, aber im ganz feld wird der gleichen Wert gespeichert.
 Mit Breack-Point klappt das schon, aber bei normal Lauf nicht.
 zwischen nach jede AD-Wandler auslesen warte ich einige Zeit, ich habe verschiedene werte von Zeit benutzt aber trozdem keine Wirckung:
 
 for(i=0;i<20;i++)
 {
 test[i]= umsetzen_Spannung();
 ADCSRA=0;
 wait_10ms(50);
 PORTB=0x00;
 wait_10ms(50);
 }
 
 /****************AD_WAndler initialisieren und auslesen************/
 
 void Adc_Init(void)
 {
 ADCSRA = 0xC0;           //Durch das setzen von Bit ADEN schaltet Der AD-Umsetzer ein
 ADMUX = 0x03;           //wählt der Kanal(ADC3) und setzt die Rferenzspannung auf 5v
 }
 
 unsigned int umsetzen_Spannung(void)
 {
 ADCSRA = 0xD6;                  //AD-Umsetzer Starten und Prescaler auswählen
 while ( ADCSRA & (1<<ADSC)); 	   //Warte-Schleife bis Ende der Umsetzung
 Ergebnis=(ADCL+(ADCH<< ); );
 PORTB=0x17;
 //return (ADCL+ADCH*256);
 return Ergebnis;       // Im ADCL sind die ersten 8 bits des Ergebnisses
 // Im ADCH sind die restlichen 2 Bits gespeichert
 }
 
 
 
 Danke für jede Hilfe
 
 
 
 
 
 
 
- 
	
	
		
			
			
				Erfahrener Benutzer
			
			
				Robotik Einstein
			
			
			
			 
			
				
 
					    
				 
 
			
				
				
						
						
				
					
						
							Hallo,
 Du kannst zum auslesen des ADC auch direkt auf die beiden Ports mit ADC zugreifen, statt ADCL und ADCH, denn dann stimmt auf jeden Fall die Reihenfolge wie man das macht.
 
 Ich würde den ADC nicht jedesmal in der Schleife deaktivieren.
 
 Und dann wartet man auf das Bit ADIF bis der ADC fertig ist, nicht  ADSC, denn so wird eigentlich nicht gewartet, so wie das bei Dir steht !
 
 Hast Du schon mal ins Wiki, oder auch Datenblatt geschaut, wie das eigentlich geht mit dem ADC ?
 
 
 
 
 
 
 
- 
	
	
		
			
			
				Neuer Benutzer
			
			
				Öfters hier
			
			
			
			 
			
				
 
					    
				 
 
			
				
				
						
						
							
 
					
						
							Hallo,
 
 ja habe ich Datashet gelesen, und das steht auf der seite 138
 
 man wartet so lang das Bit ADSC auf 1 ist, wenn die Umwandlung fertig ist wird auf 0 eingesetzt(automatisch).
 ich sehe nicht dass ich den AD-Wandler in der Schleife deaktviere.
 
 
 
 
 
 
 
 
	
	
	
	
	
	
	
	
	
	
	
	
		
		
		
		
			
				 Berechtigungen
				Berechtigungen
			
			
				
	
		- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-  
Foren-Regeln
 
			 
		 
	 
 
  
 
  
 
Lesezeichen