Dann wandele doch rtf in txt (Textdokument) um (z.B. mit Wordpad).
Druckbare Version
Dann wandele doch rtf in txt (Textdokument) um (z.B. mit Wordpad).
Hallo,
Das stimmt doch nicht. Ich hab den Code heute mal auf dem Mac in allen möglichen Formaten gespeichert, die der PC aber alle nicht (zumindest nicht richtig) erkennen konnte. Auch rtf enthielt Blöcke und wirre Zeichen.Zitat:
Zitat von Jacob2
ich richte mir vielleicht bald einen internetzugang für den PC ein und dann ist mit solchen Sachen endlich schluss!(hoffentlich)!
ich weiß wirklich nicht, wie ich den Code "heile" rüberbringen soll.
MfG Jacob
Normalerweise in einem möglichst einfachen "Textformat" ohne besondere Steuerzeichen. Aber mit einem alten Apple Mac kenne ich mich nicht aus. Wozu auch?
Ich kenn mich hier zwar noch nicht so gut aus, aber kann man nicht an den Beitrag ein Attachment zum download anhängen?
Und wenn ja, könntest du mir den Code als "für den PC verständliches Format" (z.B. .txt) so mitschicken? Wäre wirklich nett! (wenns geht!)
MfG Jacob
Du kannst Deine Source-datei gerne hier anhängen, dann können wir uns diese ja mal anschauen, testen und evtl. alle "bösen" Zeichen entfernen.
der apple wird doch wohl ein minimales text-format verstehen... nimm mal ein windows- .txt file und öffne es mit dem mac. dann siehst du welches programm du für die dateien nehmen solltest...
In der datei ist das was auf dem PC ankommt (Blöcke und wirre Zeichen vorne und hinten schon ausgeschnitten).
Code:#include "asuro.h"
#include <stdlib.h>
#define SPEED 100
#define SPEEDMAX 200
#define SPEEDMIN 20
#define IMAX 16000
#define IMAXALARM 15000
unsigned char speed, j;
int speedLeft,speedRight;
unsigned int lineData[2];
int x, xalt, kp, kd, ki, yp, yd, yi, drest=0, y, y2, isum=0, ADOffset;
void FollowLine (void)
{
unsigned char leftDir = FWD, rightDir = FWD;
LineData(lineData);
x = (lineData[LEFT] - lineData[RIGHT]) - ADOffset;
yp = x*kp; // P-Anteil
isum += x;
if (isum > IMAX) isum = IMAX;
if (isum < -IMAX) isum = -IMAX;
yi = isum / 625 * ki; //I-Anteil
yd = (x - xalt) * kd; // D-Anteil
yd += drest;
if (yd > 255)
{
drest = yd - 255;
}
else if (yd < -255)
{
drest = yd + 255;
}
else
{
drest = 0;
}
if (isum > IMAXALARM) BackLED(OFF,ON);
else if (isum < -IMAXALARM) BackLED(ON,OFF);
else BackLED(OFF,OFF);
y = yp + yi + yd; // PID
y2 = y / 2;
xalt = x;
speedLeft = speedRight = speed;
MotorDir(FWD,FWD);
if ( y > 0)
{
StatusLED(GREEN);
speedLeft = speed + y2;
if (speedLeft > SPEEDMAX)
{
speedLeft = SPEEDMAX;
y2 = speedLeft - speed;
}
y = y - y2;
speedRight = speed - y;
if (speedRight < SPEEDMIN)
{
speedRight = SPEEDMIN;
}
}
if ( y < 0)
{
StatusLED(RED);
speedRight = speed - y2;
if (speedRight > SPEEDMAX)
{
speedRight = SPEEDMAX;
y2 = speed - speedRight;
}
y = y - y2;
speedLeft = speed + y;
if (speedLeft < SPEEDMIN)
{
speedLeft = SPEEDMIN;
}
}
leftDir = rightDir = FWD;
if (speedLeft < SPEEDMIN + 5) leftDir = BREAK;
if (speedRight < SPEEDMIN + 5) rightDir = BREAK;
MotorDir(leftDir,rightDir);
MotorSpeed(abs(speedLeft),abs(speedRight));
}
int main(void)
{
Init();
FrontLED(ON);
for (j = 0; j < 255; j++) LineData(lineData);
LineData(lineData);
ADOffset = lineData[LEFT] - lineData[RIGHT]; // Helligkeitsunterschied links und rechts
MotorDir(FWD,FWD);
StatusLED(GREEN);
speed = SPEED;
speedLeft = speed;
speedRight = speed;
kp = 10; ki = 4; kd = 70; // Regler Parameter kd enthält bereits Division durch dt
/* 10(!) 4(!) 70(!) */ /*<=== gute Ausgangswerte*/
while(1)
{
FollowLine();
}
return 0;
}
Hi,
entschuldigt die unterbrechung, aber unser internet schlappt gerade ein bisschen ab (wir haben immerhin noch ein 28k modem!!!)
Der apple hat zwar ein programm welches textdateien lesen kann, aber die damit erstellten textdokumente gefielen dem Pc immer noch nicht richtig.
ich hab mir jetzt einfach den code in programmers notepad abgetippt und es sind jetzt "nur" noch ein paar Fehler, die mir aber auch eher was mit dem inhaltlichen des Codes zu tun haben scheinen:
MfG JacobCode:I:\Dokumente und Einstellungen\Jacob\Desktop\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
test.elf :
section size addr
.text 1528 0
.data 0 8388704
.bss 1 8388704
.noinit 0 8388705
.eeprom 0 8454144
.stab 3144 0
.stabstr 1740 0
Total 6413
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `FollowLine':
test.c:20: error: `LEFT' undeclared (first use in this function)
test.c:20: error: (Each undeclared identifier is reported only once
test.c:20: error: for each function it appears in.)
test.c:20: error: `RIGHT' undeclared (first use in this function)
test.c: In function `main':
test.c:98: error: parse error before ';' token
test.c:100: error: `LEFT' undeclared (first use in this function)
test.c:100: error: `RIGHT' undeclared (first use in this function)
test.c:118:1: warning: no newline at end of file
make: *** [test.o] Error 1
> Process Exit Code: 2
in der asuro.h sollte man Folgendes finden:
#define LEFT 0
#define RIGHT 1
einfach selbst ins Programm übernehmen.
... und am Schluss noch eine Leerzeile.