Moin zusammen,
Für meinen Röhren Vorverstärker baue ich gerade einen RC5 Sender mit dem Attiny2313. Habe den Code von einem Atmega8 übernommen.
Dann an den Attiny2313 angepasst. Sende-Dioden mit Treiber an PB3 ( OCI ). Kontroll-LED an PB7. Dioden-Netzwerk von Anschluss PD2 ( INT0 )
an die Taster. Bei Betätigung eines Tasters wird der Eingang PD2 mit nach Masse gezogen und sollte jetzt den Interrupt Int0 auslösen.
RC5 Code senden ist OK. Haben einen Test Empfänger.
Der Powerdown Befehl geht so nicht. Da habe ich einen Fehler , und komme nicht weiter.
Was habe ich da übersehen.
Hänge noch mal einen ähnlichen Schaltplan mit dran.
Für eure Hilfe wäre ich sehr dankbar,
Wolfgang
Für meinen Röhren Vorverstärker baue ich gerade einen RC5 Sender mit dem Attiny2313. Habe den Code von einem Atmega8 übernommen.
Dann an den Attiny2313 angepasst. Sende-Dioden mit Treiber an PB3 ( OCI ). Kontroll-LED an PB7. Dioden-Netzwerk von Anschluss PD2 ( INT0 )
an die Taster. Bei Betätigung eines Tasters wird der Eingang PD2 mit nach Masse gezogen und sollte jetzt den Interrupt Int0 auslösen.
RC5 Code senden ist OK. Haben einen Test Empfänger.
Der Powerdown Befehl geht so nicht. Da habe ich einen Fehler , und komme nicht weiter.
Was habe ich da übersehen.
Hänge noch mal einen ähnlichen Schaltplan mit dran.
'***********************************************
'Controler : Attiny 2313 *
'Schaltung : RC5 - Fernbedienung *
'Compiler : BASCOM-AVR v2.0.7.1 *
'Hardware : IR-LED an PB.3 (OC1) *
' : LED an PB.7 (SCK) *
'Last update : 18.02.2013 *
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 4000000
'$lib "mcsbyte.lbx" !!!! geht auch ohne
$framesize = 32
$swstack = 10
$hwstack = 40
Ddrd = &B00000000 'alle PortD Pins auf Eingang definieren
Portd = &B11111111 'alle PortD Pins auf High setzen
Ddrb = &B10001000 'PortB 0,1,2,4,5,6 Auf Eingang / PB3 als Ausgang IR-Diode
Portb = &B011110111 ' Pull-Up Widerständ einschalten / PB7 LED Ein/Aus
' Portb.0 = Output 1 / Command: 20
' Portb.1 = Output 2 / Command: 21
' Portb.6 = Mute / Command: 13
' Portd.0 = CD / Command: 25
' Portb.2 = Tuner / Command: 26
' Portb.4 = Tape / Command: 27
' Portb.5 = Aux / Command: 28
' Portd.1 = Volume + / Command: 16
' Portd.3 = Volume - / Command: 17
' Portd.4 = Frei
' Portd.5 = Frei
' Portd.6 = Frei
Led Alias Portb.7 ' Kontroll-LED
Dim Togbit1 As Byte
Dim Togbit2 As Byte
Dim Command As Byte
Dim Address As Byte
Reset Led ' Kontoll-LED ausschalten
Togbit1 = 0
Togbit2 = 32
Address = 16 ' Sende_Adresse 16 = Pre_Amp1
Config Int0 = Low Level
Enable Interrupts
On Int0 Isr_int0
Disable Int0
'--------------------- Start Programmschleife --------------------------------
Do
If Pinb.0 = 0 Then
Command = 20
Gosub Code
Elseif Pinb.1 = 0 Then
Command = 21
Gosub Code
Elseif Pinb.6 = 0 Then
Command = 13
Gosub Code
Elseif Pind.0 = 0 Then
Command = 25
Gosub Code
Elseif Pinb.2 = 0 Then
Command = 26
Gosub Code
Elseif Pinb.4 = 0 Then
Command = 27
Gosub Code
Elseif Pinb.5 = 0 Then
Command = 28
Gosub Code
Elseif Pind.1 = 0 Then
Command = 16
Gosub Code
Elseif Pind.3 = 0 Then
Command = 17
Gosub Code
Elseif Pind.4 = 0 Then
Command = 1
Gosub Code
Elseif Pind.5 = 0 Then
Command = 2
Gosub Code
Elseif Pind.6 = 0 Then
Command = 3
Gosub Code
End If
Loop
'===============================================================================
End
'--------------------- Sende RC5 Code -----------------------------------------
Code:
Set Led 'Kontroll-LED einschalten
Rc5send Togbit1 , Address , Command
Rc5send Togbit2 , Address , Command
Waitms 80
Enable Int0
Reset Led 'Kontroll-LED ausschaltet
'Powerdown !!!! geht so nicht
Return
'____________________ Starte Interrupts --------------------------------------
Isr_int0:
Disable Int0
Return
Für eure Hilfe wäre ich sehr dankbar,
Wolfgang