-
          
	
		
		
	
	
	
	
	
		
			
- 
	
	
		
		
			
				
				
				
					MSP430 - Probleme beim C-Code für Datenspeicherung
				
				
						
							
							
						
						
				
					
						
							Hi zusammen, 
habe gerade ein Projekt mit einem MSP430F413 am Laufen. Ich soll einen Kartenleser verwirklichen. Bin jetzt auch schon weit gekommen, nun steh ich aber vor einem Problem und weiß nicht weiter. Ich habe einen Interrupt geschrieben, der wenn der Takt kommt und ein Interrupt ausgelöst wird eine ! abspeichern soll, falls eine 1 anliegt oder eine 0 falls eine 0 anliegt. Dafür shifte ich das Bit immer wieder eine Stelle nach rechts. Hier der C-Code:
if( TA0CCTL1 & CCIFG ) {				// hier TA1???
		speicher[byte_counter]>>1;		// Inhalt nach rechts 
		if(P2IN & BIT5) {				
			speicher[byte_counter] |= BIT7;	
		}
		else {
			speicher[byte_counter] &=~ BIT7; // CArry auf 0 gesetzt
		}
		bit_counter++;
		if (bit_counter == 7) {
		  	bit_counter = 0;
		  	byte_counter++;      		 
		}
		
		if (byte_counter == 4) {
	  		state = UART;
	  		CCTL1 &=~ CCIE;				
	  	}
Wenn 4 Bytes voll sind, soll er herausspringen. Die Daten kommen nachweislich an dem Port an, aber wenn ich den Speicher auslese ist höchstens ein Bit gesetzt. Tippe mal dass das mit dem Shift Befehl zusammenhängt. Hat jmd den Fehler gefunden? Oder weiß jmd ne Alternative? Danke im Voraus
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
						
						
							
						
				
					
						
							Thema hat sich erledigt, im Code war ein Fehler:
Statt  speicher[byte_counter]>>1; muss es heißen  speicher[byte_counter]>>= 1;
Trotzdem Danke
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
		
		
		
	
 
	
	
	
	
	
	
	
	
	
	
	
	
		
		
		
		
			
				
				Berechtigungen
			
			
				
	
		- Neue Themen erstellen: Nein
 
		- Themen beantworten: Nein
 
		- Anhänge hochladen: Nein
 
		- Beiträge bearbeiten: Nein
 
		-  
 
	
	
	Foren-Regeln
 
			 
		 
	 
 
  
 
  
 
Lesezeichen