Forum: Mikrocontroller und Digitale Elektronik RF-Programm läuft nicht, brauche Rat


von Marc (Gast)


Lesenswert?

hi zusammen,

habe folgendes Programm in meinen Attiny13A gepflanzt, zum ansteuern 
eines Funk-Senders:
1
$regfile = "attiny13a.dat"
2
3
$crystal = 9600000
4
$hwstack = 20                                               ' default use 32 for the hardware stack
5
$swstack = 10                                               ' default use 10 for the SW stack
6
$framesize = 34                                             ' default use 40 for the frame space
7
8
Declare Sub Sendbit(byval A As Byte)
9
Declare Sub Alpha()
10
Declare Sub Longa()
11
Declare Sub Synca()
12
13
14
Config Portb.2 = Output
15
Dataout Alias Portb.2
16
Reset Dataout
17
18
Do
19
20
   Sendbit 0                                                'a0
21
   Sendbit 0                                                'a1
22
   Sendbit 1                                                'a2
23
   Sendbit 1                                                'a3
24
   Sendbit 1                                                'a4
25
   Sendbit 1                                                'a5
26
   Sendbit 0                                                'a6
27
   Sendbit 0                                                'a7
28
'   Sendbit 0                                                'a0
29
'   Sendbit 0                                                'a1
30
'   Sendbit 1                                                'a2
31
'   Sendbit 1                                                'a3
32
'   Sendbit 1                                                'a4
33
'   Sendbit 1                                                'a5
34
'   Sendbit 0                                                'a6
35
'   Sendbit 0                                                'a7
36
'   Sendbit 0                                                'a0
37
'   Sendbit 0                                                'a1
38
'   Sendbit 1                                                'a2
39
'   Sendbit 1                                                'a3
40
41
   Sendbit 0                                                'btn0 (not on my unit)
42
   Sendbit 0                                                'btn1
43
   Sendbit 1                                                'btn2
44
   Sendbit 0                                                'btn3 (not on my unit)
45
   Sendbit 3
46
47
Wait 5
48
49
Loop
50
51
52
Sub Alpha()
53
54
   Waitms 14                                                
55
56
End Sub
57
58
59
Sub Longa()
60
61
   Alpha
62
   Alpha
63
   Alpha
64
65
End Sub
66
67
Sub Synca()
68
69
   Local Y As Byte
70
   For Y = 1 To 7
71
      Alpha
72
   Next Y
73
74
End Sub
75
76
Sub Sendbit(a As Abyte)
77
   Select Case A
78
   ' 0 bit
79
      Case 0:
80
         Dataout = 1
81
         Alpha
82
         Dataout = 0
83
         Longa
84
         Dataout = 1
85
         Alpha
86
         Dataout = 0
87
         Longa
88
   ' 1 bit
89
      Case 1:
90
         Dataout = 1
91
         Longa
92
         Dataout = 0
93
         Alpha
94
         Dataout = 1
95
         Longa
96
         Dataout = 0
97
         Alpha
98
   ' FLOAT bit
99
      Case 2:
100
         Dataout = 1
101
         Alpha
102
         Dataout = 0
103
         Longa
104
         Dataout = 1
105
         Longa
106
         Dataout = 0
107
         Alpha
108
   ' SYNC bit
109
      Case 3:
110
         Dataout = 1
111
         Alpha
112
         Dataout = 0
113
         Synca
114
115
   End Select
116
117
End Sub

Der Code wird auch übertragen, nur kommt beim Empfänger nichts an.
Nun ist die Frage warum.

Ist der Tiny vllt zu träge?
was gibt es für Abhilfe?

Oder liegt das Problem wo anders?

von Thomas (Gast)


Lesenswert?

Marc schrieb:
> Der Code wird auch übertragen, nur kommt beim Empfänger nichts an.

Wenn du weißt, dass der Code übertragen wurde, muss er doch irgendwie 
beim Empfänger angekommen sein, oder woher weißt du das sonst?

von Marc (Gast)


Lesenswert?

ich seh dass der tiny arbeitet, weil am Ausgangsport (in dem Fall Port2) 
parallel eine SMD-LED dran ist (vom Arduino Uno, den ich als 
ISP-Programer nutze).
Diese blinkt sozusagen im Code.

Als RF-Receiver habe ich ein anderen Uno, der mir das RF-Eingangssignal 
ausgibt.
Der gibt mir auch die Signale von meinen Funkfernbedienungen aus, also 
an dem kanns nicht liegen.

Könnte es vllt daran liegen, dass ich mit dem Tiny direkt den externen 
RF-Transmitter ansprechen weill, der Strom aber vllt nicht ausreicht 
(der Tiny hat ja glaub nur 20mA).
Die LED brauch ja auch was.

Am RF-Transmitter kanns auch nicht liegen, habe nämlich dieses auch 
schon an einen anderen Uno gehabt, mit der RC-Switch-Library.... da hat 
die Übertragung auch funktioniert.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marc schrieb:
> Könnte es vllt daran liegen, dass ich mit dem Tiny direkt den externen
> RF-Transmitter ansprechen weill, der Strom aber vllt nicht ausreicht
> (der Tiny hat ja glaub nur 20mA).
> Die LED brauch ja auch was.
Und wenn du 20mA über den Port zwingst, dann kommen da keine 5V mehr 
raus. Das kann man aber messen...

Gib doch mal mehr Daten (u.a. des geheimen Funkmoduls) an. Und poste 
einen Schaltplan. Sag einfach so viel wie möglich, denn sonst muss man 
ewig im Trüben storchern und herumraten...  :-/

von Marc (Gast)


Lesenswert?

Also 5V kommen an, hab ich schon mehrmals gemessen.

Als Transmitter kommt solch eine Platine zum Einsatz:

http://www.wrighthobbies.com/product.php?productid=155

Verbindung ganz simpel, PN2 direkt an Data von dem Transmitter.

Transmitter und Tiny werden mit 5V betrieben.


recht simpel das ganze ;)


Wie gesagt, gleicher aufbau mit Arduino Uno und RC-Switch Lib 
funktioniert problemlos.
Ich gehe mal von aus, dass die Timings evtl. nicht stimmen?

Oder muss der Tiny vom ISP-Programmer entfernt werden, damit der 
reibungslos funktionieren kann?

Bietet sich halt an den Stecken zu lassen zum testen.

von Marc (Gast)


Lesenswert?

werde heute Abend mal versuchen den Empfänger an meine Soundkarte zu 
hängen und die Werte der Funkfernbedienung auswerten.

Danach das oben genannte Programm für den Tiny versuchen anzupassen.

Tendenziell müsste der Transmitter ja den selben Code verschicken, nur 
halt wahrscheinlich mit den falschen Timings.

Werde testen und berichten ;)

von Marc (Gast)


Lesenswert?

Hat sich erlädigt, mir sind noch ein paar einfache Änderungen im 
Programm eingefallen, jetzt läuft es spitze.

Juheiiiiii :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.