Re: Mehrere DS18S20 mit 1-Wire Kategorie: CC-Pro Unit & Appl.Board (von Jo - 30.08.2011 19:06) | |
Als Antwort auf Re: Mehrere DS18S20 mit 1-Wire von Joerg - 30.08.2011 14:15
| |
> > > > > > > > > > Hallo > > > > > > > > > > > > > > > > > > > > hast Du eine Lösung für das DS1820 Problem gefunden? Ich wäre an der Lösung interessiert. > > > > > > > > > > Um die ROM Codes auszulesen gibt es auch search rom, ich verstehe leider nicht, wie ich das > > > > > > > anwenden muss? > > > > > > > > > > > > > > > > > > > > Viele Grü�e > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi zusammem, erst mal alles gutes C-Controlling Pro für 2009 :-) > > > > > > > > > > > > > > > > > > Ich habe folgenden Link gefunden der den ROM Search Algorith beschriebt sowie die > > > > > > > Implementierung > > > > > > > > > in C mitbringt. > > > > > > > > > > > > > > > > > > http://www.maxim-ic.com/appnotes.cfm/appnote_number/187 > > > > > > > > > > > > > > > > > > Damit kann man wohl so ziemlich alle 1 wire Chips anhängen. Ich werde bei gelegen- > > > > > > > > > heit mal schauen, ob sich das auf den C-Control übertragen lässt. Hat jemand Interesse > > > > > > > mitzuwirken? > > > > > > > > > Viele Grü�e > > > > > > > > > Jo > > > > > > > > > > > > > > > > Hallo, > > > > > > > > > > > > > > > > gibt es schon jemanden der den ROM Search Algorithmus auf dem C-Control Pro umgesetzt hat? > > > > > > > > > > > > > > > > Ich habe mich einmal daran versucht, aber ich scheitere an den Befehlen OWWriteBit und > > > > > > > OWReadBit. > > > > > > > > Mit OneWire_Write und Read werden ja immer ganze Bytes gesendet und gelesen. > > > > > > > > > > > > > > > > Grü�e Jörg > > > > > > > > > > > > > > > Hallo Peter, hallo *, > > > > > > > wie kann OWWriteBit und OWReadBit implementiert werden? Hat es jemand schon realisiert? > > > > > > > @Peter, wäre doch sehr sinnvoll in den OneWire Befehlssatz mit aufzunehmen. > > > > > > > Ansonsten wüsste ich nicht, wie man SEARCH ROM [F0h] implementieren kann. > > > > > > > > > > > > > > Danke und viele Grü�e > > > > > > > > > > > > > > Jo > > > > > > > > > > > > Ich bin auch immer noch daran interessiert.... > > > > > > > > > > > > Grü�e Joerg > > > > > > > > > > Hallo Jörg, > > > > > in http://pdfserv.maxim-ic.com/en/an/AN162.pdf ist genau beschrieben, wie das Bit-Lesen und > > > > > Schreiben zu implementieren ist. Beim OW-Byte Read und Write von C-Control ist u.A. schon > > > > > der Bitaufruf vorhanden. Zumindest ist es in dem Beispiel > > > > > http://pdfserv.maxim-ic.com/en/an/AN162.pdf so implementiert. > > > > > Für jemand der sich in Assembler auskennt, sollte > > > > > ////////////////////////////////////////////////////////////////////////////// > > > > > // READ_BIT - reads a bit from the one-wire bus. The delay > > > > > // required for a read is 15us, so the DELAY routine won't work. > > > > > // We put our own delay function in this routine in the form of a > > > > > // for() loop. > > > > > // > > > > > unsigned char read_bit(void) > > > > > { > > > > > unsigned char i; > > > > > DQ = 0; // pull DQ low to start timeslot > > > > > DQ = 1; // then return high > > > > > for (i=0; i<3; i++); // delay 15us from start of timeslot > > > > > return(DQ); // return value of DQ line > > > > > } > > > > > Page 3 of 15 > > > > > Write Bit Example > > > > > ////////////////////////////////////////////////////////////////////////////// > > > > > // WRITE_BIT - writes a bit to the one-wire bus, passed in bitval. > > > > > // > > > > > void write_bit(char bitval) > > > > > { > > > > > DQ = 0; // pull DQ low to start timeslot > > > > > if(bitval==1) DQ =1; // return DQ high if write 1 > > > > > delay(5); // hold value for remainder of timeslot > > > > > DQ = 1; > > > > > }// Delay provides 16us per loop, plus 24us. Therefore delay(5) = 104us > > > > > > > > > > keine all zu gro�e Herausforderung sein. > > > > > > > > Nein, es ist keine gro�e Herausforderung, sind ja nur zwei Funktionen. Aber > > > > erstmal mü�te ich mir hier die Hardware aufbauen, zumal ich keine 2 OW devices > > > > hier habe. Die Hardware mü�te ich mir bestellen und zusammenlöten. Dann die Funktionen > > > > implementieren, dann in CompactC testen. Die Implementation von OW ist aber leicht > > > > unterschiedlich zwischen Mega32, Mega128 und Mega128 CAN. Alle diese Platformen testen. > > > > Dann mu� es auch in die AVR32 Lib rein, an der ich gerade schreibe. Dort dann testen. > > > > BASIC ist aber auch Pflicht, also dann auf allen vier Plattformen in BASIC testen. > > > > Dazu gehören eigentlich noch Demoprogramme, also Demoprogramme in BASIC und C schreiben, > > > > auf deutsch und englisch. Dann haben sich bei mir Leute in der Vergangenheit beschwert, > > > > das wenn Funktionen schon da sind, sie auch in die Dokumentation gehören. Also Funktionen > > > > mit Syntax von BASIC und C in die Hilfedatei, dazu gehört dann auch das PDF. > > > > Und dann die gesamte Dokumentation für PDF und Hilfe nochmal auf englisch. > > > > > > > > Hier bin ich schon locker für diese Kleinigkeit bei 5-6 Manntagen (ca. viertel Monatsgehalt) > > > > das mir keiner bezahlt. Und wenn ich Funktionen einbaue, mu� ich dafür gerade stehen. > > > > Also wenn ein Kunde meint, da einen Bug zu haben, debugge ich da im Zweifelsfall stundenlang > > > > und sehe keinen Cent. > > > > > > > > Gruss Peter > > > > > > > > > > Hallo Peter, > > > > > > ich kann das alles nachvollziehen... > > > > > > Ich war nur bisher in dem Glauben, das Byte lesen besteht aus 8 * Bit lesen besteht. > > > > > > Grü�e Joerg > > > > > > > > > > > > > Viele Grü�e > > > > > > > > > > Jo > > > > Hallo Jörg, > > wie sind deine Assembler-Kentnisse? Ich habe mit dem Watchdog mal etwas gebastelt, > > ich denke mit entsprechenden Assember-Beispielen sollte es machbar sein!?! > > Wenn du Lust hast, können wir es zusammen versuchen > > > > Viele Grü�e > > Jo > > Hallo Jo, > > meine Assembler Kenntnisse sind eher schlecht. > > Ich habe mir mal einen 1 wire C Code von einem Peter Dannegger heruntergeladen. > Das ganze hapert aber an dem Timing auf dem C Control. > In diesem Code wird aber auch in der Byte Routine die Bit Routine aufgerufen. > Ich meine man braucht also nur den inneren Teil der Byte Routine. > > Grü�e Joerg > > Hallo Jörg, das mit dem Timing sollten wir in Griff kriegen; die Takfrequenz com C-Control ist bekannt, damit ist die Ausführzeit unterschiedlicher Assemblerbefehle berechenbar. In der Assembler Routine müssen die Interrupts disabled werden. Wenn es doch nur mehr Beispiele für Assembler mit C-Control gäbe.... U.U. hilft auch eine entsprechende Routine mit dem AVR zu schreiben und dann den generierten Assembler code vom Compiler anzuschauen? Ich frage auch mal im Kollegenkreis ob jemand mit der Implementierung helfen kann. Viele Grü�e Jo | |
Antwort schreiben Antworten: Re: Mehrere DS18S20 mit 1-Wire (von Jo - 31.08.2011 18:18) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum