Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

61

Freitag, 18. Dezember 2009, 12:09

Hi Olli,

der Smooth-Modus gilt lokal für den einzelnen Kanal, und innerhalb des Programmablaufs kann er auch beliebig ein- und ausgeschaltet werden. Mit JVAR... kann man hier aber leider nix machen, da man damit in der vorliegenden Version keinen Zugriff auf den aktuellen Wert der Ausgangshelligkeit hat. Wäre natürlich eine Überlegung wert, den aktuellen "physikalischen" Helligkeitswert auf diese Weise addressierbar zu machen, indem man dafür einfach ein paar Variablenadressen reserviert bzw. deren Zuordnung definiert. Die Frage ist, ob das sinnvoll ist, d.h. es evtl. auch für andere Anwendungen nützlich ist, oder man nicht besser gleich den allgemeinen ALIC-Befehlssatz um ein paar simple Befehle zur Beeinflussung der Variablen erweitern sollte (CLRVARX, INCVARX, SETVARX...)?

Grüße,

Thomas

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (18. Dezember 2009, 12:13)


62

Freitag, 18. Dezember 2009, 12:24

Überlegung:
wenn es nur bzw. hauptsächlich um die mögliche Implementation von Zählschleifen geht, wären evtl. diese beiden Befehle sinnvoll:

SETVARX <x>,<value> setzt die Variable (x) auf Wert <value>

LOOPVARX <x>,<address> Decrementiert Variable (x), wenn Ergebnis nicht 0, Sprung zu Adresse <address>

63

Freitag, 18. Dezember 2009, 15:37

ja, würde ich dir zustimmen, wenn man sowieso etwas neu programmieren müsste, dann wären einige "anständige" Befehle sicher sinnvoller. Olli

PS: tja, Fabrice, Idee war doch nicht so clever ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »OlliW« (18. Dezember 2009, 15:37)


64

Samstag, 19. Dezember 2009, 12:57

Servus,

die Idee mit dem ungenutzten Kanal als "Timer" kann man aber trotzdem verwenden, und zwar viel einfacher, als über "smooth" und "JVAR..."!
Hab's auch nicht gleich gesehen, weil mir das mit dem Helligkeitswert plausibel erschien und ich mich darauf konzentriert hatte...

Also: mit einem Schalter geht es ganz einfach. Wenn z.B. ein Vorgang bei Channel 0 eine Sekunde dauert und 5 mal wiederholt werden soll, dann könnte man es so machen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
entry_ch0
 (irgendwelcher code)
 .
 .
loop
 SETSWX 1 ;timer starten
 .
 (Code für das, was 5 mal wiederholt werden soll, Dauer z.B. 1s)
 .
 .
 JSWXON 1,loop ;wenn Timer noch nicht abgelaufen, Schleife ausführen
 .
 .

entry_ch1
 DEFTICKLEN 100 ;Zeiteinheit: 1/10 s
 HALTSWOFF ;warten auf Timer-start
 DELAY 45 ;nach 4,5 Sekunden:
 CLRSW ;Schalter rücksetzen
 P_RESET


Grüße,

Thomas

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Ottili« (19. Dezember 2009, 13:06)


Fab66

RCLine User

Wohnort: Frankreich

  • Nachricht senden

65

Samstag, 19. Dezember 2009, 18:10

Guten Abend,

danke fur die Bemuehung, ich laufe mit.

Ich zeichne gerade eine zweite Version mit 2 konstantstroeme Ausgange.

Fabrice
»Fab66« hat folgendes Bild angehängt:
  • ScreenShot023.jpg

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

66

Mittwoch, 23. Dezember 2009, 19:54

Hallo Thomas,
unsere Experimente mit Picalic laufen immer besser,dazu ein paar Fotos.
Ein 4 Kanal-Schalter 1xRC mit 12F629, Ausgang mit FET-Transistoren.
Ein 8 Kanal-Schalter 2xRC mit 16F630, Ausgang 4xFET, 4xRelais.

Trotzdem noch zwei Fragen:
Ist es möglich über RC einige Ausgänge tastend (kein Memory) zu schalten?
Beim Brennen über ICSP liegen Data und Clock über 100 Ohm am FET, ist dieser
Widerstand zu klein? Brennen hat aber funktioniert. Oder sollte man beim nächsten
zwei Jumper einbauen?
Bei uns im Verein sind alle über Picalic begeistert. Man muss sich halt vertraut machen.
Alles über die alic-Befehle weis ich auch noch nicht, aber gut Ding brauch Weile.
Nächstes Projekt wird jetzt ein Feuerwehr-Auto der hiesigen Wehr sein.
Auch die weihnachtliche Lichterstadt meiner Frau wird Dank Picalic automatisch gedimmt
und in einen Tag/Nacht Modus versetzt. Nur im Stall beim Jesuskind hängt immer noch die alte Laterne.
Thomas, ich wünsche Dir und Deiner Familie ein frohes Fest und einen guten Start ins
neue Jahrzehnt.

viele Grüße Ommes und Rennkutter1(Hardware)
»ommes« hat folgendes Bild angehängt:
  • 4-Kanalschalter.jpg

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

67

Mittwoch, 23. Dezember 2009, 19:55

Hier das zweite Bild.
»ommes« hat folgendes Bild angehängt:
  • 8-Kanalschalter.jpg

68

Montag, 28. Dezember 2009, 14:19

Grüß Euch und wünsche auch Euch, frohe Weihnachten gehabt zu haben! ;)
(War über die Feiertage verreist und offline)
Freut mich, daß es offenbar doch ein paar Projekte auf dieser Basis gibt! :)

Zitat


Ist es möglich über RC einige Ausgänge tastend (kein Memory) zu schalten?

Dafür kann man die RC Geber-Stellung mit JVAR* -Befehlen direkt auswerten. Der Variablen-Wert entspricht der Geber- bzw. Schalterstellung (64 = ca. Mitte = Impulslänge 1,5ms) Also z.B.:

Quellcode

1
2
3
4
5
6
7
8
entry_ch2
  DEFVAR	0   ;RC-Kanal 1 diesem Kanal zuordnen
loop_ch2
  JVARAE 80,ch2_on  ;Licht an, wenn Wert >= 80
  P_RESET  ;sonst Licht aus, zurück auf Anfang
ch2_on	
  LIGHTON 0    ;Licht an
  JUMP loop_ch2    ;Variable erneut abfragen

Zitat


Beim Brennen über ICSP liegen Data und Clock über 100 Ohm am FET, ist dieser
Widerstand zu klein? Brennen hat aber funktioniert. Oder sollte man beim nächsten
zwei Jumper einbauen?

Das Gate des FETs ist ja hochohmig, d.h. der FET wirkt hier nur als Kondensator mit relativ kleiner Kapazität im einstelligen nF-Bereich. Die Frequenzen und Ansprüche an Flankensteilheit sind beim Programmieren wohl nicht so hoch, daß diese Kapazitätswerte stören. Ich würde daher auch keinen Jumper vorsehen. Sollte es wider Erwarten doch mal Probleme geben (evtl. mit einem anderen Brenner?), könnte man ja notfalls noch die Widerstände vorübergehend auslöten. Oder einfach die Gate-Widerstände auf 1k erhöhen. Das wäre für die Funktion der Schaltung sicher auch nicht schädlich...

Viele Grüße

Thomas

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

69

Samstag, 16. Oktober 2010, 14:16

Hallo Thomas,

ich hoffe Dir geht´s gut, und Du schaust auch noch ab und an nach dem Projekt "PICALIC".
Wir möchten das Programm hinter einem Nautic Modul als Blinker und Blitzer nutzen.
Optimal wäre eine Nutzung des PIC 16f628, da er 16 I/O Ports besitzt, damit also
8 Eingänge und 8 Ausgänge. Wie müsste die Beschaltung und das Programm aussehen,
wenn die Eingänge mit Low angesteuert werden.

Über eine Antwort würden wir uns freuen.
(Sollte das mit dem 628 nicht gehen, kann man ja vieleicht auch zwei 630 er nehmen?)

Viele Grüße Ommes und Rennkutter1

70

Samstag, 16. Oktober 2010, 15:31

Hallo Ommes,

die Version für den 628 gibt es eigentlich schon - hatte ich mal als "Beta" auf die Seite gestellt, aber beim Umzug der Seite ist der Link darauf irgendwie verloren gegangen...

Die Daten sind eigentlich da:
http://www.picalic.de/htmldoc/beta16f648a.html

Grüße,

Thomas

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

71

Samstag, 16. Oktober 2010, 16:05

Hallo Thomas,
vielen Dank für die schnelle Antwort.
Die 628 Version kenne ich, aber mir ist nicht so ganz klar wie ich die Ein- und Ausgänge
nutzen muss und welche Schalter ich deglarieren muss.
Kann ich alle RA´s als Ein- und alle RB´s als Ausgänge nutzen?
Ich tu mich mit der Zuordnung der Switches immer noch sehr schwer.
Wie muss ich diese im Programm ansprechen. Ich stell mir vor das wenn ich RA0 mit Low beschalte, der Ausgang RB0 blinkt oder blitzt, je nach Programmtext.
Besser wäre noch wenn die IC-Beine 1-9 Eingang wäre und die gegenüberliegende Seite
die Ausgänge (schöne Platine machbar).

VG Ommes

der Samstag-Abend ist rum und wir haben folgendes Ergebnis:
Die4 RB-Kanäle funktionieren beim 628, die Ausgänge 0-3.
Die4 RA-Kanäle machen irgendetwas unkontrolliertes, die Ausgänge 4-7.
Du hast damals geschrieben das der 628 Probleme mit den Port Change Interrupts hat
und nur einen RC-Kanal kann. Wir brauchen hier zwar keinen RC, aber gibt es da vieleicht einen Zusammenhang?

einen schönen Sonntag wünscht Ommes und Rennkutter1

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ommes« (16. Oktober 2010, 23:27)


72

Sonntag, 17. Oktober 2010, 16:01

Hi Ommes,

Zitat

Original von ommes
Hallo Thomas,
vielen Dank für die schnelle Antwort.
Die 628 Version kenne ich, aber mir ist nicht so ganz klar wie ich die Ein- und Ausgänge
nutzen muss und welche Schalter ich deglarieren muss.
Kann ich alle RA´s als Ein- und alle RB´s als Ausgänge nutzen?

nein, die Ausgänge sind Pins 10..18 (außer P.14=VDD), die Eingänge liegen auf der gegenüberliegenden Seite (Pins 1..9), siehe Pinout-Skizze.

Zitat


Ich tu mich mit der Zuordnung der Switches immer noch sehr schwer.
Wie muss ich diese im Programm ansprechen. Ich stell mir vor das wenn ich RA0 mit Low beschalte, der Ausgang RB0 blinkt oder blitzt, je nach Programmtext.

am Besten, Du legst am Programmanfang über einen "DEFSWITCH"-Befehl fest, welcher Schalter (= Eingangspin) für die Steuerung der jeweiligen Funktion benutzt werden soll, dann kannst Du im Programm über HALTSWON/OFF oder JSWON/OFF den Programmablauf steuern.
Wenn die Eingänge Low-Aktiv sein sollen, musst Du im Programm berücksichtigen, daß "on"= high ist, also on/off vertauscht sind!

z.B. RA0/Pin16 soll ein Blinker sein, der bei Low an Pin RA3/Pin2 (d.h. der gegenüberliegende) eingeschaltet werden soll:

Quellcode

1
2
3
4
5
6
entry_ch6                              ;Programm für Out 6 (=Pin 17):
        DEFSWITCH 19          ;Kontrolle über S19 (=Pin 2)
	HALTSWON			;warten auch Einschalten (= low!)
        LIGHTON 50
        LIGHTOFF 50
	P_RESET				;dann Wiederholung...


Zitat


Besser wäre noch wenn die IC-Beine 1-9 Eingang wäre und die gegenüberliegende Seite
die Ausgänge (schöne Platine machbar).

genau so isses doch!

Zitat


der Samstag-Abend ist rum und wir haben folgendes Ergebnis:
Die4 RB-Kanäle funktionieren beim 628, die Ausgänge 0-3.
Die4 RA-Kanäle machen irgendetwas unkontrolliertes, die Ausgänge 4-7.

muß ich abchecken - habe ich mit diesem Prozessortyp ja nie getestet, da ich den nicht da habe. Vielleicht kannst Du mir Deinen Programmcode mal schicken?

Zitat


Du hast damals geschrieben das der 628 Probleme mit den Port Change Interrupts hat
und nur einen RC-Kanal kann. Wir brauchen hier zwar keinen RC, aber gibt es da vieleicht einen Zusammenhang?

kann ich mir nicht vorstellen - Du solltest bei den #defines
#define RCCHAN 0
eintragen, dann müsste das RC-Interface ganz ausgeschaltet sein.

Viele Grüße,

Thomas
»Ottili« hat folgendes Bild angehängt:
  • pinout16F648A.gif

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

73

Samstag, 23. Oktober 2010, 11:47

Hallo Thomas,

erneut Samstag und ich hab mal ein wenig Zeit, hab den Fehler in der zweiten Hälfte gefunden (im Programm falsche Sprungbefehle), jetzt läuft alles prima und ich kann ans Platinen basteln gehen.
Wir wollen den Picalic ja hinter den 16-Kanalschalter von C. Poltermann hängen, um so viele individuelle Lichtkanäle zu steuern. Eine Anfrage bei Claus, ob man vieleicht ALIC in den Kanalschalter integrieren könnte, verneinte er. Platz in dem großen PIC müßte wohl genügend sein, aber man müßte wohl beide Programme miteinander verheiraten. (Schade). Aber ein kleines Platinchen tut`s ja auch.
Vielen Dank für Deine Hilfe und bleib mit ALIC weiter am Ball. (immer interessant)

schönes Wochenende
Ommes

74

Samstag, 23. Oktober 2010, 15:52

Hallo Ommes,

eigentlich wäre es kein Problem, eine Multiswitch-Auswertung direkt vorzunehmen. Es müsste die RC-Auswertung, die auf das Auswerten der Impulslänge und Erkennung von Störimpulsen bei "Ausreissern" ausgelegt ist, anders programmiert werden und dann z.B. als Ausgabe 8 oder 16 Schalternummern (= technisch Bits), die dann verwendet werden können. Das Problem dabei ist hauptsächlich, daß ich kein Multiswitch-Modul habe (und mangels Anwendung bei mir im Sender auch nicht unbedingt installieren will), d.h. da fehlen mir dann Test- und Debug-Möglichkeiten. Das Grundprinzip ist ja offenbar recht einfach, und eine Fehlererkennung könnte man so machen, daß, wenn Impulse aus dem Rahmen fallen, d.h. irgendwelche unerwarteten Längen haben, als 1 - 1,5 - 2 ms +/- eine gewisse Toleranz, erst wieder ein komplettes, störungsfreies Multiswitch-Telegramm empfangen werden muß, damit sich am Ausgang etwas ändert.

Also, konzeptionell könnte eine Multiswitch-Einbindung in PICALIC so aussehen:

bei den #define-Zeilen:

#define MULTISWITCH ;wenn Definition vorhanden: Multiswitch-Auswertung statt Standard RC-Interface
Bedeutung der folgenden Defines bei Multiswitch:
#define RCCHAN <x> ;Anzahl der MS-Kanäle (max. 16)
#define RCHYST <x> ;erlaubte Abweichung der Impulslänge f. Fehlererkennung
#define STARTSW <bis 16 bits> ;Setzt einen Start-Status für die Multiswitch Schalter (d.h. bevor ein sauberes Rx-Signal erkannt wird, z.B.auch f. Stand-Betrieb ohne RC)
RCPW_HIGH/RCPW_LOW = Impulslängen für on/off
RCPW_SYNC = Impulslänge f. Sync-Signal.

Damit lässt sich vielleicht sogar schon leicht eine Anpassung auf Hersteller-spezifische Lösungen (z.B. Nautic-Modul o.ä.) realisieren. Oder gibt es da vielleicht noch Belzebübchen im Detail, wie z.B. Prüfbits oder weitergehende Gemeinheiten/ganz anderes Impuls-Format? Hier wären entprechende Experten mit genauer Kenntnis der Protokolle gefragt...


Grüße,

Thomas

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (23. Oktober 2010, 15:54)


75

Samstag, 23. Oktober 2010, 21:59

So, habe jetzt mal ein bisschen meine Dateien aufgeräumt und die 16F627/628/648-Unterstützung "offiziell" in das Projekt integriert. Jetzt bastele ich mal an einem Multiswitch-Decoder...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (23. Oktober 2010, 21:59)


76

Montag, 25. Oktober 2010, 03:38

Hallo Ommes,

fertig! ;)

Probier's mal aus - Testversion gibt's hier: http://www.picalic.de/downloads/multiswitch.zip

Zumindest im MPLAB Simulator schien es halbwegs zu funktionieren.
Die Multiswitch-Schalter fangen bei Nummer 32 an. Die eingestellte Anzahl (RCCHAN) muß mit dem im Sender eingebauten Multiswitch-Modul übereinstimmen, sonst werden die Datenpakete als fehlerhaft ignoriert!

Grüße,

Thomas

ommes

RCLine Neu User

Wohnort: Kreis Koblenz

  • Nachricht senden

77

Dienstag, 2. November 2010, 19:59

Hallo Thomas,

leider bekomm ich die Sache mit dem Multiswitch nicht zum laufen.
Die Ausgänge blinken, aber lassen sich nicht schalten.
Das RC-Empfängersignal speise ich auf Beinchen 6 ein (ist das richtig?)
Muss ich irgendwelche Schalter zuweisen, hab beides probiert, geht nicht.
Hab Dir mal beide programme angehangen, vieleicht hab ich nur was falsch eingestellt. Wir haben es mit einem 12 und 16 Kanal multiswitch probiert.

Gruß Ommes

entry_ch0
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch1
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch2
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch3
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch4
DEFSWITCH 40
HALTSWON
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch5
DEFSWITCH 41
HALTSWON
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch6
DEFSWITCH 38
HALTSWON
LIGHTON 100
LIGHTOFF 100
P_RESET
entry_ch7
DEFSWITCH 39
HALTSWON
LIGHTON 100
LIGHTOFF 100
P_RESET

radix dec ;Zahlen ohne Basis-Kennzeichnung: dezimal

#define ALICFILE ALIC_source/628.asm ;ALIC ASM-Sourcefile (Licht-Patterns)

#define CLOCK 4 ;CPU Taktfrequenz (4 or 8 MHz)
#define NCHAN 8 ;Anzahl der Ausgangskanäle (1..8)
#define ACTIVELOW 0 ;LED-Ausgänge sind invertiert wenn "1"
#define AUXOUTA B'00000000' ;freie RA-Ports = Ausgang wenn "1" (7..0)
#define AUXOUTB B'00000000' ;freie RB-Ports = Ausgang wenn "1" (7..0)
#define AUXOUTC B'000000' ;freie RC- bzw. GP-Ports = Ausgang wenn "1"

#define COMMTICK 1 ;0: individuelle Ticklänge pro Ausgang möglich
;1: gemeinsame Ticklänge, 10ms fest eingestellt
;(Option 1 braucht weniger RAM)
#define PWMTU 80 ;Länge der PWM-Zeiteinheit (Microsekunden)
#define PWMCYC 128 ;Anzahl PWMTUs in einem vollen PWM-Impuls,
;d.h. PWM-Periodendauer = PWMTU * PWMCYC Microsek.
#define MULTISWITCH ;wenn def. vorhanden: RC-Interface = Multiswitch-Decoder
#define RCCHAN 16 ;Anzahl RC Eingänge (0, 1 oder 2)
;bei Multiswitch: Anzahl MS-Schalter (max. 16)
#define RCHYST 10 ;Hysterese für RC-Prozessing (* 8 µs)
;bei Multiswitch: Toleranz f. Störungs-Erkennung

;für RC Memory-Switch oder Multiswitch Funktion:
#define STARTSW B'00000000' ;Status der Schalter bei Start (Nummer 15..8)

;------ RC Impulslängen, 64 = 1,5ms, 1 Schritt = 8 µs:

#define RCPW_HIGH 1 ;RC-Impuls Schwellwert (empf.: 90= ca. 1,7ms)
;bei Multiswitch: Impulslänge f. "ein"
#define RCPW_LOW 64 ;RC-Impuls Schwellwert (empf.:39= ca. 1,3ms)
;bei Multiswitch: Impulslänge f. "aus"
#define RCPW_SYNC 127 ;Multiswitch Sync.-Impulslänge

#define MS_LONG 10 ;min. Haltezeit des Knüppels in der Endstellung
;für 2. Memory-Switch Function
;(1 Schritt: 1/10 s, max. Wert = 15)

;---------------- Ende der Konfigurations-Daten

#include alc_main.asm ;Main Code

if RCCHAN ;if RC-interfacing:
ifdef MULTISWITCH
#include multiswitch.asm ;include Multiswitch decoding
else
#include alc_rc.asm ;include standard RC-routines
endif
endif


END

78

Mittwoch, 3. November 2010, 13:37

Hallo Ommes,

das habe ich befürchtet! (naja, um ehrlich zu sein, eigentlich schon eher erwartet - erfahrungsgemäß läuft ja kaum irgendwas auf Anhieb...)

Pin 6 ist richtig (beim 16F628 ).
Die Schalter müssen natürlich auf jeden Fall zugeordnet werden, da die Default-Zuordnung ja 0..7 ist, die Multiswitches aber bei 32 losgehen.

So wie z.B. hier:

Quellcode

1
2
3
4
5
DEFSWITCH 40
HALTSWON
LIGHTON 100
LIGHTOFF 100
P_RESET

ist es aber schon richtig (müsste in dem Fall der 9. Schalter sein)

Unsicherheiten:
Schalterreihenfolge: bin davon ausgegangen, daß der Impuls von Schalter 1 als erstes übertragen wird. Es wäre möglich, daß stattdessen der letzte Schalter zuerst übertragen wird, aber das müsste durch probieren von allen Schaltern am Sender leicht festzustellen sein.
Timing: beim Timing der Impulse bin ich von den Werten in Claus' Beschreibung (http://www.cp-elektronik.de/index.php/fu…tiswitch-module) ausgegangen, also 1 ms = "ein", 1,5ms = "aus", 2 ms = Synchronisation. Evtl. muß da etwas angepasst werden?

Die Anzahl der Impulse = Schalter muß stimmen. Ob dann einer oder mehrere Sync-Impulse hintereinander kommen, sollte egal sein.
Welches RC-System hast Du? kommen da die Rx-Impulse evtl. viel schneller, z.B. alle 5ms statt alle 20 ms? Das wäre ein Problem!

Ich werde mal eine einfache Debug-Möglichkeit einbauen, d.h. die Möglichkeit, ein paar Statusinfos (Sync-Signal/on/off/Fehler...) in Form von aufblitzenden LEDs sehen zu können. Dann müsste sich der Fehler schon etwas eingrenzen lassen.

Grüße,

Thomas

79

Mittwoch, 3. November 2010, 13:57

Ich überlege gerade, bezüglich der Funktionsweise des Multiswitch-Encoders:
die Impulslänge wird ja, wenn ich es richtig deute, nicht digital und exakt durch den Encoder erzeugt, sondern dieser spielt dem Sender nur ein "Poti" vor, d.h. der Sender erzeugt die Impulslänge für links-mitte-rechts. Bei Multiplex z.B. ist "Mitte" aber nicht 1,5ms, sondern 1,6 ms. Für solche Abweichungen ist der eingetragene Wert für die Fehlertoleranz (RCHYST = 10, also +/- 80 Microsekunden) natürlich viel zu klein.
Als erste Maßnahme würde ich daher vorschlagen, hier mal mit
#define RCHYST 30
zu versuchen. Damit fällt schon alles im Bereich 1,26...1,74 in das Raster "1,5ms"...

Grüße,

Thomas

80

Sonntag, 5. Dezember 2010, 17:04

Hallo Thomas

habe mir ein zusatzmodull zu meinen Nauticmodull gebaut 8xEingänge und 8x Ausgänge.
Geht gut habe auch das Programm soweit hin bekommen das es 3x Scheinwerfer ; 1x Blinker; 3x Neon und 1x Schweißlicht darstellt.
Nun meine frage wie bekomme ich das hin das der Schweißer mal die Elecktrode wechselt . Habe am angang das anschlagen der Elecktrode noch hinbekommen und das es unregelmäßig blizt. Es startet aber erst wieder wenn ich es mit der Anlage kurz ausschalte. :angry:

Anbei was ich in das Program geschrieben habe.

;****************************************************************
;einxSchweißlicht
;drei x Neon
;ein x Blinken
;drei x Scheinwerfer
;****************************************************************

entry_ch1
DEFSWITCH 26
entry_ch2
DEFSWITCH 25
entry_ch3
DEFSWITCH 24
wait4on ;warten auf "Schalter ein":
HALTSWON ;bleibt "aus" solange switch auf "off"
SETBRIGHT 0,30 ;aus lassen für min. 300ms
flicker
RNDDLY 150 ;delay 0 bis 1,5s
JSWON wait4on ;falls Schalter inzwischen wieder "aus": aus!
RNDJMP 54,turn_on ;etwa 50% Chance für jetzt Anspringen!
RNDBRT 10,40,2 ;min. 20 ms Aufblitzen bei niedriger Helligkeit
RNDDLY 20 ;delay bis 200 ms
SETBRIGHT 0,0 ;aus
JUMP flicker ;neuer Startversuch
turn_on
SETBRIGHT 128,0 ;"Ein" -> volle Helligkeit
HALTSWOFF ;bleibt an, solange switch = "on"
P_RESET

entry_ch4
DEFSWITCH 21
HALTSWON
LIGHTON 3 ;Blitz: 30 ms
LIGHTOFF 13 ;Pause 130 ms
P_RESET

entry_ch5
DEFSWITCH 20
entry_ch6
DEFSWITCH 19
entry_ch7
DEFSWITCH 18
SMOOTHON ;Helligkeit kontinuierlich ändern
HALTSWON ;warten auch Einschalten
SETBRIGHT 0,30 ;LED aus, in 0,3 Sek. bis zur
SETBRIGHT 128,0 ;maximalen Helligkeit
HALTSWOFF ;warten auf Ausschalten
SETBRIGHT 128,10 ;in 100ms von "voll" auf
SETBRIGHT 85,20 ;2/3, dann in 200ms auf
SETBRIGHT 43,40 ;1/3, dann in 400ms auf
SETBRIGHT 0,0 ;0
P_RESET ;dann Wiederholung...

entry_ch0
DEFSWITCH 27
HALTSWON
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 30 ;Pause 300 ms
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 30 ;Pause 300 ms
dreir
JSWON drei ;falls Schalter inzwischen wieder "aus": aus!
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 1 ;Pause 10 ms
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 2 ;Pause 20 ms
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 3 ;Pause 30 ms
LIGHTON 1 ;Blitz: 10 ms
LIGHTOFF 4 ;Pause 40 ms
JUMP dreir
drei
HALTSWOFF ;bleibt an, solange switch = "on"
P_RESET


(Macht die leerzeichen hier leider weg sind im Program) :wall:
kannst Du mir helfen ???

Mfg
Jürgen (Rennkutter1)