-
          
	
		
		
	
	
	
	
		
	
	
		
			
- 
	
	
		
		
			
				
				
				
					externen RC5 decodiert Code ... von Bascom AVR Version
				
				
						
						
				
					
						
							Hallo,
da ich wie schon geschrieben nach einem extern Interrupt ein RC5 Signal decodieren möchte und das warscheinlich mit dem Befehl GETRC5 nicht so recht funkt. (siehe Beitrag von gestern)
habe ich in der Hilfe von Bascom bei Getrc5 folgendes gefunden :
"GETRC5 supports extended RC5 code form version 1.11.6.9 thanks to Gert Boer..."
also wer hat noch diesen Quelltext für das extern. RC5 decodieren ?
oder wer hat noch die Beispieldateien von der Version 1.11.6.9 - da sollte das doch auch drinn sein oder ?
vielen Dan im vorraus
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
						
						
				
					
						
							Hallo gleichfalls,
diese Versuche habe ich auch gerade hinter mir ...
Das RC5READ in der ISR kann so nicht funktionieren, da während des Ablaufes der Routine alle Interrupts disabled sind !! Und RC5READ benötigt nun einmal den Timer-Interrupt. 
Der ist aber - wie gesagt - disabled.
Ergo müsste man in der ISR zunächst ein ENABLE INTERRUPT setzen.
Ausserdem sollte die ISR möglichst kurz sein (sonst wird der Anfang der Sendung verpasst).
Ich habe gar keine ISR definiert !
Der INT hebt nur den IDLE-Zustand auf, in dem der Prozessor auf ein Signal wartet.
CONFIG INTO = FALLING
ENABLE INTO
ENABLE INTERRUPTS
.......
IDLE    ' Hier wartet das Programm auf den INT
RC5READ(Address, Command)
Trotzdem waren die Probleme aber noch nicht ganz gelöst.
Zwar kann ich damit die Signal einer Fernbedienung empfangen, einen anderen Microcontroller aber nicht
(die Ursache habe ich noch nicht weiter untersucht - ich vermute, dass die Fernbedienung mehrfach sendet, der Controller ab nur 1mal - und RC5READ hat die erste Flanke des Sendung bereits verpasst, da diese zur Auslösung des INT diente).
Als Lösung des Problems schicke ich vor dem RC5-Code sozusagen einen "Vorblitz", einen kurzen Impuls, der den INT auslöst und RC5READ anstartet. Das funktioniert reibungslos.
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
						
						
				
					
						
							so sieht das ir-rc5-dateneinlesen bei mir aus mit int0.
ich benutze fastavr-basic. vielleicht kann man das in Bascom übertragen.
Interrupt Int0(), Save 2
	Disable Int0			
	Enable Interrupts	
	RC5(ir_adr, ir_Command)
	If ir_command=62 Then 
	    motor_wert=120
		robby_vor()
	End If	
	If ir_command=61 Then 
		motor_wert=80
		robby_zurueck()
	End If	
	If ir_command=60 Then 
		motor_wert=60
		robby_links_encoder()
	End If	
	If ir_command=59 Then 
		motor_wert=60
		robby_rechts_encoder()
	End If
	If ir_command=63 Then robby_aus()
	Reset Int0				
	Enable Int0				
End Interrupt	
mfg pst
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
		
		
		
	
 
	
	
	
	
	
	
	
	
	
	
	
	
		
		
		
		
			
				
				Berechtigungen
			
			
				
	
		- Neue Themen erstellen: Nein
 
		- Themen beantworten: Nein
 
		- Anhänge hochladen: Nein
 
		- Beiträge bearbeiten: Nein
 
		-  
 
	
	
	Foren-Regeln
 
			 
		 
	 
 
  
 
  
 
Lesezeichen