Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Hey, > > > > ich bin gerade dabei Den Mega128 so zu programmieren das er über die RS232 Schnittstelle ASCII > > zeichen ausgibt. Die Daten werden an den PC gesendet dort schaue ich sie mir mit dem > > Hyperterminal an. Jedoch kommen bei allen Zahlen die ich übersende nur sehr komische Zeichen > > heraus. Weiß jemand von euch woran das liegen könnte? > > > > Fg Daniel > > hallo daniel > das selbe problem habe ich auch gehabt. das geht bei der ccontrol pro nicht so einfach wie bei den > vorigen ccontrols. > dur musst die variable (byte oder word) in ein character umwandeln und dann an die schnittstelle > senden. > ich hänge die ein demoprg an. Str_Printf ist der Befehl den du anwenden musst. > > das mit dem Befahl Msg... funktioniert überhaupt nicht, wenn die unit in der schaltung ist und nicht > im applikationsbord. > > // Dieses Demo Programm ist nur für Mega128 > #ifdef MEGA32 > #pragma Error " Timer3 nur für Mega128 " > #endif > > // Deklaration der Formatierungsvariablen > #define SPACE 0x20 > #define CR 13 > > word PM_Wert; // globale Variablendeklaration > char str[80]; > //------------------------------------------------------------------------------ > // Messung > // > void Timer3_ISR(void) > { > PM_Wert=Timer_T3GetPM(); // Messwert auslesen > Irq_GetCount(INT_TIM3CAPT); // Interrupt zurücksetzen > } > > //------------------------------------------------------------------------------ > // Hauptprogramm > // > void main(void) > { > byte n; > word i; > > n=0; > Irq_SetVect(INT_TIM3CAPT,Timer3_ISR); // Interrupt Service Routine definieren > > Timer_T1PWM(256,64,PS_64); // Pulsgenerator > // Puls=4,34 µs*32= 139 µs > // Periode=4,34 µs*256= 1111 µs > Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200); > // die Messung beginnt hier > // Timer Output verbinden mit ICP (input capture pin) Timer1 > while (1) > { > PM_Wert=0; > > Timer_T3PM(0,PS_1); // Pulsmessung initialisieren und starten > //Timer_T3PM(1,PS_1); // Periodenmessung initialisieren und starten > > while (PM_Wert==0); // Pulsbreite und Periode messen > > // Msg_WriteHex(n); // Anzahl Durchläufe ausgeben > // Msg_WriteChar(SPACE); > // Msg_WriteWord(PM_Wert); // Wert ausgeben > // Msg_WriteChar(CR); > > PM_Wert=PM_Wert*67.8e-3; > Str_Printf(str, "%4d",n); > Serial_WriteText(0,str); > Serial_Write(0,SPACE); > Str_Printf(str, "%u %5s",PM_Wert, " µsec"); > Serial_WriteText(0,str); > Serial_Write(0,CR); > > > AbsDelay(500); // Delay 500ms > n++; > } > } > > ich hoffe dir hilfts > gruß josef