1-Wire Projekt, Code Hilfe C

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 3 2024  10:30:19      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 | 3 | 4 | 5 Nächste Seite )      


Autor
1-Wire Projekt, Code Hilfe C

    







BID = 936265

trafostation

Schriftsteller



Beiträge: 590
 

  


Hallo,

Ich arbeite gerade an einem Dallas iButton Schloss Projekt, dazu habe ich im Netz eine Anleitung+Code gefunden, für den PIC12F683.
Habe ich auf der Steckplatine nachgebaut und funktioniert soweit auch.
Zur Schaltung: wenn man einen Dallas Key ansteckt und den Programmierbutton drückt wird die Seriennummer im EEPROM des PIC gespeichert, eine grüne LED leuchtet, und der Transistorausgang wird auf "high" geschaltet(für Relais etc.)

Nun möchte ich aber einen zweiten, unabhängigen Kanal dazu programmieren, das heißt 2. Programmierbutton + 2.Transistor.(die 2 notwendigen Ports sind noch frei)
Der Autor des Codes meinte ich sollte dazu ein weiteres Byte einfügen(0x0F für Transistor 1 und 0XF0 für den 2. Transistor), und in der "CheckEEPROM" Sektion ein zusätzliches "returnvalue".
Das wäre so gedacht returnvalue 0= nicht registrierter Key(da passiert nichts), 1= Transistor 1, 2= Transistor 2.
Dazu müssten aber auch die Programmieruttons entsprechen gemappt werden.

Einziger Haken ist das ich der Programmiersprache C nicht wirklich mächtig bin, der Code ist zwar recht einfach, und einige Teile davon habe ich kopiert und soweit angepasst, nur,das mit den 2 unabhängig programmierbaren Kanälen bekomme ich nicht hin, vielleicht könnte mir dabei jemand helfen.
Vielen Dank schonmal !

BUTTON_INPUT wäre für TRANSISTOR
BUTTON_NEW wäre für TRANSISTOR_NEW

Anbei der Code










[ Diese Nachricht wurde geändert von: trafostation am 31 Aug 2014 15:08 ]

BID = 936273

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

 

  

Setz mal den Link zum Projekt bzw. den unveränderten Quellcode hier rein.
Du hast schon ein wenig rumgemurkst - da möchte ich mal das lauffähige original sehen

BID = 936276

trafostation

Schriftsteller



Beiträge: 590

Bitte sehr, der Orginal Code(getestet), zur Erklärung, die RED_LED habe ich als TRANSISTOR_NEW, und den BUZZER als BUTTON_NEW modifiziert, in meinem Code.
Mein gemurkster Code ist zwar auch lauffähig, tut aber noch nicht das was er soll
Anbei auch noch der Schaltplan zum besseren Verständnis.





BID = 936278

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

Danke!
Ich lese mich nachher mal in Ruhe rein.

Wo liegt dein Problem genau?

[ Diese Nachricht wurde geändert von: Maik87 am 31 Aug 2014 16:39 ]

BID = 936283

trafostation

Schriftsteller



Beiträge: 590

Ich schaffe es nicht das die Programmierbuttons unabhängig voneinander die unterschiedlichen Schlüssel(Dallas DS2401) speichern und dann den jeweiligen Transistor dafür schalten.

Momentan schalten beide Buttons beide Transistoren gleichzeitig.

Danke für deine Hilfe

BID = 936285

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein


Zitat :
trafostation hat am 31 Aug 2014 16:57 geschrieben :

beide Transistoren gleichzeitig.


Sicher?

Transistor2 kann nur schalten, wenn iskeyonlist == 2. Das wird aber im jetzigen Stand des Codes niemals vorkommen. Hier kann iskeyonlist NUR 0 oder 1 sein.

BID = 936289

trafostation

Schriftsteller



Beiträge: 590

Ja, stimmt !, ich hatte aber vorher auch den 2. Transistor als der "iskeyonlist = 1", da haben dann beide natürlich gleichzeitig geschalten.

Wenn ich Schlüssel A anstecke und mit Button A in den EEPROM speichere soll auch nur Transistor A geschalten werden.
Und umgekehrt dasselbe dann für Kanal B.

Die DS2401 sind ja jeweils einzigartige Seriennummern.

BID = 936295

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

Ich habe leider keine Möglichkeit zu testen - daher bitte einmal versuchen:

BID = 936305

trafostation

Schriftsteller



Beiträge: 590

Da sind noch einige Fehler drinnen, leider, MPLAB meckert rum.
Einen Teil konnte ich beheben, wie die doppelten Ports (RED_LEDetc.

Zitat :
MPLAB\main.c; 85.1 function declared implicit int
MPLAB\main.c; 86.1 ";" expected
MPLAB\main.c; 98.24 too many function arguments
MPLAB\main.c; 111.1 no identifier in declarationMPLAB\main.c; 111.1 missing basic type; int assumed
MPLAB\main.c; 111.1 ";" expected
MPLAB\main.c; 114.1 no identifier in declaration
MPLAB\main.c; 114.1 missing basic type; int assumed
MPLAB\main.c; 114.1 ";" expected
MPLAB\main.c; 115.1 no identifier in declaration
MPLAB\main.c; 115.1 missing basic type; int assumed
MPLAB\main.c; 115.1 ";" expected
MPLAB\main.c; 117.8 ")" expected
MPLAB\main.c; 117.9 type redeclared
MPLAB\main.c; 117.9 conflicting declarations for variable "_delay"
MPLAB\main.c; 117.22 no identifier in declaration

BID = 936309

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein


Zitat :
trafostation hat am 31 Aug 2014 19:09 geschrieben :

Einen Teil konnte ich beheben, wie die doppelten Ports (RED_LEDetc.


Da klappte wohl die Auskommentierung vor der Raute nicht

Guck bitte nochmal, was noch über ist.

Edit:
Neue Datei - zwei selbstgefundene noch raus.

[ Diese Nachricht wurde geändert von: Maik87 am 31 Aug 2014 19:41 ]

BID = 936315

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

Hier neu.

BID = 936325

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

Neu

BID = 936326

trafostation

Schriftsteller



Beiträge: 590

Fast ! keys ist noch nicht definiert.
TRISIO ist übrigens 0x18 wegen dem neuen Button.
Und mein Modem spinnt auch gerade rum...


Zitat :
MPLAB\main.c; 145.5 undefined identifier "keys"
MPLAB\main.c; 145.18 undefined identifier "keysl
MPLAB\main.c; 159.16 undefined identifier "keys"


[ Diese Nachricht wurde geändert von: trafostation am 31 Aug 2014 20:12 ]

BID = 936327

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein


Zitat :
trafostation hat am 31 Aug 2014 20:10 geschrieben :

Fast ! keys ist noch nicht definiert.
TRISIO ist übrigens 0x18 wegen dem neuen Button.
Und mein Modem spinnt auch gerade rum...


Code :

MPLAB\main.c; 145.5 undefined identifier "keys"

MPLAB\main.c; 145.18 undefined identifier "keysl
MPLAB\main.c; 159.16 undefined identifier "keys"




Grad behoben (s.o.) - doppelte Definition dank Copy&Paste.

TRISIO:
Bei mir geändert - danke.

[ Diese Nachricht wurde geändert von: Maik87 am 31 Aug 2014 20:16 ]

BID = 936331

Maik87

Schriftsteller



Beiträge: 851
Wohnort: Wesel / Niederrhein

Jetzt in (hoffentlicher) Perfektion.


      Nächste Seite
Gehe zu Seite ( 1 | 2 | 3 | 4 | 5 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag       heute wurden bisher 5 Beiträge verfasst
© x sparkkelsputz        Besucher : 180688406   Heute : 4300    Gestern : 12674    Online : 474        29.3.2024    10:30
13 Besucher in den letzten 60 Sekunden        alle 4.62 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0553770065308