ihr seit meine letzte hoffung. habe schon stundenlang google gequählt aber noch nicht weiter :(( ich muss den ic mit dem unten stehenden source code programmieren. ich weiß assembler etc. allerdings weiß ich nicht welchen assembler ich nehmen muss um den text in hex umzuwandeln. zum proggen wollte ich mir den programmer bei ebay kaufen und mit ic-prog programmieren. passt der sourcecode überhaupt?? weil da ja text drinsteht etc. hab von sowas echt keine ahnung. bedanke mich schonmal chris // komfort.c // Komfortschließung, copyright Julian Baker 2004 // 2x Tastendruck innerhalb 2 sek.(t1) --> Ausgang(P1.7)PIN19 nach t_Einschalt_delay für // 10sek(t2) High, dann wieder Low // weiterer Tastendruck: Ausgang Low // Taster: ext. Interrupts INT0 (P3.2)PIN 6 // PIN 1 Reset(bei High) // PIN 4,5 XTAL + 2 x 22pF // PIN 10: GND, PIN 20. VCC(5V) #include # define Quarzfrequenz 11059 // f in khz # define T0_1msec 0xFFFF-Quarzfrequenz/12 // Ladewert von T0 (TH0+TL0), t=1mS #define t1 2000 // 2sec #define t2 10000 // 10sec (Wert mit SSD muss 15000 -> 15sec sein!!!) #define t_Einschalt_delay 500 // 500 msec # define T0HI_1msec T0_1msec / 256 // T0 High-Order (durch int.Division) # define T0LO_1msec T0_1msec % 256 // T0 Low-Order (Modulo liefert Rest) #define start_T0 TR0=1; // Timer 0 starten #define stop_T0 TR0=0; // Timer 0 abschalten #define Out P1_7 // Ausgang P1.7 #define Out_High Out=1 #define Out_Low Out=0 unsigned char status; unsigned int msec; //Variable für Zeitverzögerung void main(void) { TH0 = T0HI_1msec; // Timer0 High-Order Register für 1ms laden TL0 = T0LO_1msec; // Timer0 Low-Order Register für 1ms laden TMOD &= 0xF0; // Timer0 Einstellungen zurücksetzen TMOD |= 0x01; // T0 Modus1, 16bit Zeitgeber ET0 = 1; // Freigabe des Interrupts bei Überlauf T0 EX0 = 1; // Freigabe des ext. Interrupts INT0 (P3.2) IT0 = 1; // externer Interrupt0 wird flankenaktiviert EA = 1; // alle Interruptquellen möglich ausgangszustand(); while (1) // Beginn Endlosschleife { PCON=0x01; // enter idle mode } } void ext_INT0 (void) interrupt 0 // { unsigned char i; //Tastenentprellung; EX0 = 0; for (i=0; i<255; i++); IE0=0; EX0 = 1; switch (status) { case 4: // 3.Tastendruck = Abbruch ausgangszustand(); break; case 3: // 3.Tastendruck = Abbruch ausgangszustand(); break; case 2: status=3; // Verzögerung aktivieren msec=0; case 1: // 1.Tastendruck: starte T0, msec werden gezählt stop_T0; msec=0; TH0 = T0HI_1msec; // Timer0 High-Order Register für 1ms laden TL0 = T0LO_1msec; // Timer0 Low-Order Register für 1ms laden start_T0; status=2; break; } } void random_time (void) interrupt 1 using 1 // Timer0 Interruptroutine { TH0 = T0HI_1msec; // Timer0 High-Order Register für 1ms laden TL0 = T0LO_1msec; // Timer0 Low-Order Register für 1ms laden msec++; // msec inkrementieren if (msec>t2) // wenn Zeit t2 abgelaufen { ausgangszustand(); } if (msec>t1 && status== 2) // kein weiterer Tastendruck-> { ausgangszustand(); } if (msec>t_Einschalt_delay && status==3) // Verzögerung vorbei { status=4; Out_High; // Ausgang für t2 sec = High msec=0; } } void ausgangszustand (void) { Out_Low; status=1; stop_T0; msec=0; }
würde mich echt interessieren womit man stundenlang google quälen kann. Zum einen ist das nicht Assembler sondern C, zu anderen bist du in einem vollkommen falschem Forum. Probier mal bei goolge die Suchworte C Compiler 8051 In dem Quelltext ist mindestens ein Fehler über den der Kompiler stolpern duerfte und einige Sachen sind Compilerspezifisch. Es dürfte also besser sein nochmal auf die Seiten zu schauen wo der Quelltext herstammt.
achja. sorry. gehört ins µc-forum der quelltext stammt von bmw-secrets.de angeblich stimmt der so. ich habe gedacht assembler ist ein proggi das den text in hex umwandelt. sorry. aber mit dem programmiersprachen kenn ich mich net aus. ich such ein proggi das den text in hex umwandelt. mehr brauch ich nicht. mit google hab ich gesucht wie man in hex umwandelt. aber wenn man keinen plan hat ist das ne zeitaufwendige sache. ich such erst bevor ich jemanden belästige. aber diesmal seh ich keinen anderen weg mehr als mal in nem forum zu fragen. wo leute nen richten plan haben.
eine Konfortschließung zum Nachrüsten ?? Für ZKE oder für ZVM ?? Habe E34. Hallöchen, ich mache zwar in Assembler und nicht in C aber der Text muß erst kompiliert werden. Ist für nen 8051. Mal sehen wer sicher erbarmt die 3 Mausklicks zu machen. @Rahul oder Peter könnt Ihr helfen ?? Habe auch Ineteresse daran !! Danke
danke. für zke. soll aber auch für zvm gehen. aber nur wenn man mit dem schlüssel im schloss die fenster schließen kann (komfortschließen, zentralsichern). platinen hab ich schon entworfen. gehen heute raus zum fertigen. nur der schrott mit dem proggen raubt mir den letzten nerv ;)
Hallochen, also ich habs hier mal versucht zu compilieren. Habe mal schnell die Keil uVision drauf gemacht. Aber ich komme damit nicht klar. etliche Einstellungen etc.pp. C ist mir einfach zu kryptisch. Man könnte es in Assembler umschreiben, aber vorher solltest Du die Routine mal in die Sektion "Codesammlung" reinstellen und fragen ob dir das mal jemand "compilieren" kann. Das sollte auf nem 89C2051 laufen bei 11,059 MHz. Für nen C Programmierer sind das wenige Handgriffe. Ich bleibe bei Assembler !!! SO Also bis dann
ich habe mir auch µc51 und keil draufgemacht. aber keinen plan... habe gedahct ich muss nur das file laden und dann einfach nen knopf drücken und das proggi wandelt mir das ins hex um das ich in den chip flashen kann.
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.