Re: 2 schnelle zeitversetzte plm ausgeben Kategorie: Programmierung (von Cris, http://www.crisullmann.de - 7.02.2005 7:41) | ||
Als Antwort auf 2 schnelle zeitversetzte plm ausgeben von segelohrenbob - 3.02.2005 23:23 | ||
| ||
Hallo Bob, mit sleep kann das nicht funktionieren da die PLM-Ausgänge vom Prozessor direkt angesteuert werden. Du musst die entsprechenden Register beschreiben danach laufen die PLM's immer durch bis zur nächsten �nderung. Zum genaueren Verständnis empfehle ich das Manual des C164, Teil 2. Hier noch ein unkommentierter Auszug aus einem Programm welches ein um 120 Grad versetzten Rechteck an den 3 PLM's erzeugt. Ich habe damit eine Drehstrommotor gesteuert. sfr.set_P8(0b00000010); sfr.set_T7REL(0x4000); sfr.set_T7IC(0B0000000000000000); sfr.set_T8IC(0B0000000000000000); sfr.set_CC16IC(0B0000000000000000); sfr.set_CC24IC(0B0000000000000000); sfr.set_CC17IC(0B0000000000000000); sfr.set_CC25IC(0B0000000000000000); sfr.set_CC18IC(0B0000000000000000); sfr.set_CC26IC(0B0000000000000000); sfr.set_CCM4(0B0101010101010101); sfr.set_CCM6(0B0100010001000100); sfr.set_CC16(0x4000); sfr.set_CC24(0xA000); sfr.set_CC17(0x8000); sfr.set_CC25(0xE000); sfr.set_CC18(0x6000); sfr.set_CC26(0xC000); sfr.set_T78CON(0B0000000001000011); sfr.set_P8(0B00000010); Viel Spa� beim Testen und verändern. Beste Grü�e Cris > wie kann man die plm ausgänge schalten/programmieren damit sie je eine periode als durchlauf haben > und mit ende der periode der andere plm ausgang eingeschalten wird während der esrte für diese > periode ausgeschalten werden soll, und das in einer endlosschleife. > die timebase sollte aber TIME_BASE 400 sein, also das kürzeste was es angeblich gibt > > > > plm 0 aktiviert deaktiviert aktiviert > |____ ____ > | | | | > | |_________,________________,| |_________, > plm1 > | deaktiviert ____ aktiviert deaktiviert > | | | > |_____________,| |____________,_____________; > periodendauer > 20microsec 20microsec 20 microsec > > so soll im endeffekt das bild auf dem oszi aussehen, realisieren konnte ich das programm nur mit > einem sleep von 1ms nach jedem zyklus, so soll aber nicht das gewünschte ergebnis aussehen > habe folgendes programm geschrieben: > > thread main > { > station_io.init (); > station_lcd.init (); > plm.setperiod 0,500); > plm.settimebase (0,0); > plm.setmode (0,0); > plm.setperiod 1,500); > plm.settimebase (1,0); > plm.setmode (1,0); > > { > loop > plm.out (0,100); > ports.deact (plm.out (1,0)); > sleep 1; > plm.out (1,100); > ports.deact (plm.out (0,0)); > sleep 1; > }}} > > > > so, das ist mein meisterwerk ;) > was ist daran falsch und wieso geht das nicht ohne die sleep funktion????? > wär schön wenn mir dabei jemand helfen könnte, > danke schon im voraus > mfg segelohrenbob Meine Seite: http://www.crisullmann.de | ||
Antwort schreiben Antworten: |