Hallo ich nochmal... nur damit wir uns nicht verrennen, frageich lieber nochmal nach: Also... wir haben folgende situation Wir möchten vom PC aus an den PIC 4Bytes schicken( immer 4 stck bei jeder änderung die passiert alles was nicht gebraucht wird wird genullt) So ABER.... Wie können wir ein Array bilden was die 4 Werte aufnimmt und dann in BYTE1,BYTE2;BYTE3,BYTE4 speichert und nutzt, bis wieder 4byte kommen dannn werden die ja automatisch überschrieben... hat da zufällig jemand eine idee.... nicht für assembler oder pragma... danke...
unsigned char Bytes[4];
unsigned char nextByte;
....
du kriegst das Byte von der UART
Bytes[nextByte] = empfangenes Byte;
nextByte++;
if( nextByte == 4 )
nextByte = 0;
Das heisst also, ich erstelle ein Array Names:Bytes dort kann ich von der UART mein HEX Signal Einbringen und jedes weitere HEXKombi wird dann in das nächtse Bytes geschrieben,also: Bytes(1) Bytes(2) Bytes(3) Bytes(4) und das nächste das kommt überschreibt automatisch dann Bytes(1)??? Hoffe ich habe das richtig verstanden...smile... muss mich da erst genau durchkämpfen... aber das ist ein supergrosse Hilfe, ich bin super dankbar... Hängen mit dem Kopf im Sand... Danke Gruss Uwe
Hier habe ich unter anderem einen Tread und unser Programm: Beitrag "Hilfe PORT D kann nicht 2x in einem Programm mit LCD genutzt werden."
Uwe K. schrieb: > Das heisst also, ich erstelle ein Array Names:Bytes > dort kann ich von der UART mein HEX Signal Einbringen und jedes weitere > HEXKombi wird dann in das nächtse Bytes geschrieben,also: > > Bytes(1) > Bytes(2) > Bytes(3) > Bytes(4) > KAUF DIR EIN C BUCH! In C wird bei 0 zu zählen angefangen. Ein Array mit 4 Elementen hat die Elemente Bytes[0], Bytes[1], Bytes[2], Bytes[3]. Zähl nach, sind 4 Stück! Ein Bytes[4] existiert nicht. > und das nächste das kommt überschreibt automatisch dann Bytes(1)??? was glaubst du, was nextByte++; if( nextByte == 4 ) nextByte = 0; macht und welchen Bezug das zum Ablegen der Bytes durch Bytes[nextByte] = empfangenes Byte; hat. > Hängen mit dem Kopf im Sand... Du brauchst ein C-Buch! Das Problem, mit dem du gerade 'kämpfst' ist mit dem Wissen der ersten 50 Seiten C-Buch problemlos lösbar. Da fehlen dann noch 250 Seiten was du sonst noch wissen solltest.
Sorry...ok... hast recht... geb ja zu das einiges fehlt... darum frage ich ja hier denn das Problem ist, das ich es in 2 OWchen fertig haben muss...und na ja irgendwann geht nichts mehr... und da bleibt mir nur ehrlich zu sein und zu fragen... halt jemanden der sich damit auskennt... und ja ich weiss von 0 aus zählen, aber tut mir leid...mir raucht der kopf... Sorry
Uwe K. schrieb: > Sorry...ok... hast recht... geb ja zu das einiges fehlt... darum frage > ich ja hier Das ist der falsche Weg! Wir können dir hier nicht C von Grund auf beibringen. Das kann ein Buch wesentlich besser, weil es logisch aufgebaut ist und vom Einfachen zum Schwierigen in geordneter Folge vorgeht. Mit anlassbezogenem Zusammenfragen von Halbwissen wirst du nie die Geheimnisse der Sprache ergründen. Da fehlt dir einfach viel zu viel. (Sieht man auch im anderen Thread. Da sind Fehler drinnen, die dürfen einem Neuling nach der 5. Stunde Programmieren nicht mehr passieren. D.h. sie dürfen schon passieren, aber das darf für ihn dann kein Kopfzerbrechen mehr sein)
Uwe K. schrieb: > Sorry...ok... hast recht... geb ja zu das einiges fehlt... darum frage > ich ja hier denn das Problem ist, das ich es in 2 OWchen fertig haben > muss... Nein, das Problem ist, dass du zu spaet angefangen hast. Wohl lieber Parties gemacht, was?
Mh, also ich bin schon 33 Jahre alt und ich habe eine Familie, also mit Party hab ich nichts am Kopf... Wir haben ein Projekt so und unser Programmierer ist schwer krank, somit müssen wir das jetzt fertig machen... Und das bis max. 23.12.2011... So und daher suchen wir uns in jede Richtung Hilfe... Das heisst wir durchkämmen alle Foren und versuchen mit dem bischen wissen was wir haben es zu schaffen...so und da ist uns jeder tip herzlich willkommen... Die Idee mit dem Array bin ich gerade am einbinden, der rest weiss ich nicht ob das klappt mit dem Empfangen aber es muss... daher ist es für mich mehr als schwer, aber ich fummel mich dadurch und teste und probiere, nur dafür brauche ich ggf. hilfe, soetwas was du zu anfang gemacht hast,.. das ich nicht viel kann das weiss ich selber aber ich will nein ich muss es schaffen, nur wenn jeder mich nur darauf hinweisst das ich so nicht weiterkomme, dann ist das scheisse, ich weiss selber das es schwer wird, und auch das ich mit "halbwissen " nicht weit komme, aber ich komme immer schneller ans ziel, mit kleinen ideen... danke
Ähhh, sorry, aber mit diesem (deinem) nur sehr rudimentären Grundwissen über SW-Erstellung und uC (PIC) ... "mit kleinen ideen" ... "bis max. 23.12.2011". Hmmm. Haste schonmal daran gedacht, professionelle Hilfe zu holen, also jemanden mit Ahnung von der Sache gegen Bezahlung zu beacuftragen ?
Mh ja aber ich weiss nicht was das kostet, und wir haben kaum mittel dafür...aber glaube mir den gedanken hatten wir schon, die Platinen sind nächste woche da...so und dann muss es ran gehen... was kostet soetwas denn???Ganz ehrlich...
Uwe K. schrieb: > die Platinen sind > nächste woche da...so und dann muss es ran gehen... was kostet soetwas > denn???Ganz ehrlich... Seid ihr sicher, dass die Platine wirklich funktioniert? Wenn noch nicht mal die Software steht, dann seid ihr (selbst wenn Euer Programmierer noch da wäre) ziemlich knapp dran. 2 Wochen Projektarbeit für eure Programmierung würde ich jetzt mal mit ca. 5000 Euro ansetzen. Ein Hobbyprogrammierer macht das sicher für weniger.
Gut die Hardware war mein Part und die sollte mit der Portbelegung passen... aber 5000 Euro, ne ich glaube das geht nicht so wirklich... Hammer... dann muss es so klappen....
Uwe K. schrieb: > Wir möchten vom PC aus an den PIC 4Bytes schicken( immer 4 stck bei > jeder änderung die passiert alles was nicht gebraucht wird wird genullt) Hallo Uwe Nur weil das so ein "ultrabeliebter" Anfängerfehler ist: Das sind dann für den PIC auch wirklich VIER UNABHÄNGIGE BYTE. Also NICHT zwei 16 Bit Integer oder ein 32 Bit Integer, die ihr nur byteweise schickt ? Ansonsten hast Du nämlich während der Übertragung plötzlich unsinnige Integers, während die "andere Hälfte" noch übertragen wird. Das gleiche Problem entsteht, wenn die vier Byte nur als Packet verarbeitet werden dürfen (z.B. wenn eine Checksum dabei ist). Wenn Du die SIO pollst entsteht das Problem nicht wenn Du erst weiterprocessed nachdem alles da ist. Ansonsten, oder wenn das in einer Interruptroutine passiert, dann kriegt ihr richtig Spass beim debuggen :/ Ich drück Euch die Daumen Grüße Andreas
Ne Ne wir wollen 4 Byte senden mit je 8 Bit...smile... und diese werden eingelesen ins array und von da aus starten wir dann ins jeweilige programm
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.