Board indexPortal
Last visit was: It is currently 25. Aug 2019 00:06


All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 12 posts ] Go to page  1, 2  Next
FollowersFollowers: 2
BookmarksBookmarks: 0
Views: 435

AuthorMessage
 Post subject: Probleme mit in8 - LPC
PostPosted: 9. Mar 2019 18:22 

Joined: 03.2019
Posts: 7
Gender: None specified
Hallo zusammen...

Vorweg schon einmal, vielen Dank für dieses Tolle Projekt!!

Ich habe ein Problem mit dem Binär Eingang. Wenn ich den ersten Kanal Binäreingang, als Schaltzähler konfiguriere. Dann scheint etwas mit der Fallenden Flanke nicht zu passen.

Das ganze stellt sich so da:

1. Konfiguriert auf steigende Flanke = Zählverhalten Normal beim schließen des Stromkreises
2. Konfiguriert auf fallende Flanke = nichts! Man kann keinen Zählvorgang auslösen!
3. Konfiguriert auf beide Flanken = verhalten wie bei 1.

Jetzt ist die Frage, mache ich etwas Falsch oder kann das Fehlverhalten jemand bestätigen?

******* fb_app_in8.c ** Zeile 277 *********

case 10:// ### Schaltzähler ###
n=eeprom[0xD5+(pinno*4)];// Parameter Flanke für Zählimpuls
if ((n&0x01 && st_Flanke)||(n&0x02 &! st_Flanke)){
zaehlervalue[pinno]++;// zählwert erhöhen
schrittzaehler[pinno]++;// schrittzähler erhöhen
maxzaehler=(eeprom[para_adr +2]<<8) +eeprom[para_adr+3];
tmp=0;

Ist die Eprom Position für diesen Parameter korrekt und wie kann ich das überprüfen?

Ist der IF Operator korrekt?

Wert in st_Flanke sollte eigentlich passen, sonst würde man das in den anderen Funktionsarten auch merken!

Ich bin der Meinung gleiches Problem gibt es auch beim Impulszähler?

Viele Grüße in die Runde
Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 9. Mar 2019 21:41 

Joined: 05.2013
Posts: 639
Gender: None specified
Ist mir neu, dass das nicht geht. Hast du es selber compiliert? Wenn ja, kannst du mal die mem Größe checken,ob die nicht ins eeprom reinläuft?

_________________
liebe Grüße
Andreas


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 9. Mar 2019 22:43 

Joined: 03.2019
Posts: 7
Gender: None specified
Hallo Andreas,

nein das ist eines der fertigen Images aus Github https://github.com/selfbus/software/tre ... eases/3.11

Mit den Daten aus dem Eprom meine ich die ETS Einstellungen, die in den Aktor geschrieben werden. Sind die abhängig von der Größe des Images? Ich dachte die Parameter von der ETS werden immer an die gleiche Stelle geschrieben egal wie groß die Firmware im LPC ist.

Macht mir den Anschein, das da ein Konfig Parameter nicht an der Stelle steht, womit dann verglichen wird.

Kann man die Byte und Bit Positionen irgendwo nachschauen, oder muss ich die herausfinden, indem ich nur einen Parameter verändere und dann den Eprom Inhalt vergleiche?

Normal sollte man die Position eines Parameters in einer Applikation doch mit den angaben aus der vd4 Datei errechnen können.

Besonders bei den anderen Funktionen fällt das Problem ja nicht auf. Nur die Fallende Flanke wird nicht gezählt.

Gruß, Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 10. Mar 2019 19:15 

Joined: 05.2013
Posts: 639
Gender: None specified
Ich habe das erwähnt, weil wenn man beim Programmieren nicht aufpasst, das Programm zu groß wird, dann überschreibt die ETS Programmteile, da sie ja eben stur immer an die selbe Stelle schreiben soll. Du musst da nichts rausrechnen , ich kann das nachschauen. Es ist nur so lange her dass ich die zerlegte Tabelle erst wieder finden muss. ;-)

_________________
liebe Grüße
Andreas


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 10. Mar 2019 19:18 

Joined: 05.2013
Posts: 231
Location: Melsungen/Hessen
Gender: Male
Hallo Andre,
bist Du sicher, dass der LPC vor dem Programmieren gelöscht wurde, oder können noch "alte" Reste von einer vorigen Programmierung drin geblieben sein?
Gruß
Hans


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 10. Mar 2019 23:36 

Joined: 03.2019
Posts: 7
Gender: None specified
Hallo, danke für die Antworten..

Ich habe hier Binäreingänge 19 stehen und alle verhalten sich gleich. Habe nicht alle 19 getestet aber 6 Stück als Stichprobe. Eigentlich waren die LPCs neu, nur der erste wurde mit 2-3 Images getestet. Aber neu müssen die ja auch nicht leer gewesen sein.

Ich kann gerne nochmal einen Löschen und neu Flaschen.

Gruß, Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 12. Mar 2019 15:06 

Joined: 03.2019
Posts: 7
Gender: None specified
Hi Andreas,

Du brauchst die Tabelle nicht suchen.

Ich glaube es ist ein Bug im Code, will es nur erstmal Testen und fixen!

Gruß, Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 12. Mar 2019 15:49 

Joined: 03.2019
Posts: 7
Gender: None specified
Hallo zusammen,

ich bin gestern dazu gekommen den LPC nochmal neu zu Flashen. Das Ergebnis war aber das gleiche.

Da ich ein bissel Faul bin :-) und auch den Original Code nicht verändern wollte habe ich dann doch mal geschaut was die ETS da so in das Eprom schreibt.

Wenn ich dann in der ETS zwischen "Steigender Flanke" und den zwei anderen Werten umschalte, verändert sich beim Programmieren nur ein MemoryWrite Befehl!

MemoryWrite (S=5) Count=1, Address=01D5, Data=$71 = Steigend
MemoryWrite (S=5) Count=1, Address=01D5, Data=$72 = Fallend
MemoryWrite (S=5) Count=1, Address=01D5, Data=$73 = Beide

Ansicht in Binär, Interessant sind nur Bit 1 und 2 von Rechts:

0000 0000 0111 0001 = Steigend
0000 0000 0111 0010 = Fallend
0000 0000 0111 0011 = Beide

Also Bit1 = Flag für Steigende Flanke
und Bit2 = Flag für Fallende Flanke

Bei dem vergleich werden die Bits durch das AND separiert.

n&01 = 0000 0000 0000 0001 = Steigend = true
n&01 = 0000 0000 0000 0000 = Fallend = false
n&01 = 0000 0000 0000 0001 = Beide = true

n&02 = 0000 0000 0000 0000 = Steigend = false
n&02 = 0000 0000 0000 0010 = Fallend = true
n&02 = 0000 0000 0000 0010 = Beide = true

Das Ergebnis wird mit st_Flanke abgeglichen.

Die Operatoren sind:
(n&01 && st_Flanke) = Wenn Steigende Flanke konfiguriert (Logischer UND Vergleich) st_Flanke Wahr?
(n&02 &! st_Flanke) = Wenn Fallende Flanke konfiguriert (UND nicht Zuweisung/Verknüpfung) st_Flanke Wahr?

Bei n&02 wird kein vergleich gemacht sondern eine Verknüpfung oder eine Zuweisung? Gibt es den Operator &! in C? Ich konnte nichts finden?

Müsste es nicht (n&02 && !st_Flanke) heißen?

Hatte noch keine Zeit den "NEUEN" Code zu Compilieren. Da muss ich mir erstmal eine Buildumgebung einrichten um mir eine neue HEX Datei erstellen zu können. (Das habe ich erst einmal mit SelfBus Code gemacht)

Gruß, Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 13. Mar 2019 00:18 

Joined: 03.2019
Posts: 7
Gender: None specified
Hallo zusammen,

das Problem ist gelöst. Meine korrigierte Version erkennt jetzt je nach Parameter die entsprechenden Flanken!

Es waren nur die falschen Operatoren. Ich habe ein Pull Request in GIT mit den Korrekturen erstellt.

https://github.com/selfbus/software/pull/1

Gruß, Andre


Top
Offline Profile  
 
 Post subject: Re: Probleme mit in8 - LPC
PostPosted: 13. Mar 2019 00:21 

Joined: 11.2017
Posts: 239
Gender: None specified
Habe den Pullrequest eben angenommen.
Es wäre schön, wenn noch jemand anderer mal drüber testen könnte und die richtige Funktion bestätigen könnte.

@abierwirth: kannst du auch die HEX zur verfügung stellen. Könnte helfen.


Top
Offline Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ]  Go to page  1, 2  Next

All times are UTC + 1 hour [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Group | Theme created StylerBB.net
phpBB3 free Forum by UserBoard.org | All Rights Reserved.
» Contact & Abuse Support-Forum Gooof Webdesign free forum Dein Forumo Forum web tracker