danke, ich werde es mal ausprobieren.
kannst du zum Thema gerade aus fahren bitte einen link posten??
Gruß Matthias
Druckbare Version
danke, ich werde es mal ausprobieren.
kannst du zum Thema gerade aus fahren bitte einen link posten??
Gruß Matthias
zum geradeausfahren solltet ihr mal die suchfunktion befragen, darüber git es hunderte threads da kein asuro normalerweise einfach geradeaufs fährt =)
zu pollswitch: ein weiteres problem ist der kondensator der parallel zu den tastern geschaltet ist (c6 oder c7 glaub ich). wenn er aufgeladen ist, wird beim messen von pollswitch seine spannung mit-gemessen. das führt zu störungen. ichhabe ihn bei meinem asuro kurzerhand entfernt, seitedem läuft pollswitch zu 99,999% korrekt. das muss aber nicht zwingend bei jedem asuro helfen.
eine möglichkeit diese fehler asuzugleichen, ist eine anpassung in der asuro.c, auch hier bitte suchfunktion benutzen.
bitte die Suchfunktion benutzen. Ich hab "asuro geradeausfahren" eingegeben und hab bereits auf der ersten Seite einige sinnvolle Treffer!
ok, ich habe es jetzt mal versucht um zu setzen...
also wie ich eigentlich gedacht habe, sollte die FrontLED leuchten, wenn ein Taster gedrückt ist also taster!=0 ist.Code:#include "asuro.h"
int main(void)
{ Init();
unsigned char taster=0;
taster=PollSwitch();
while(1)
{
if(taster==PollSwitch() && taster!=0) /*die FrontLED sollte doch eigentlich
leuchten wenn der Taster gedrückt ist oder ...&&taster!=0*/
{
FrontLED(ON);
}
else
{
BackLED(ON,ON);
FrontLED(OFF);
}
}
}
Dies klappt aber nicht, es leuchten nur die BackLEDs auch bei einem oder mehreren Tastendrucken oder drücken, wie das auch heißen mag...^^
an was kann das noch liegen?
du musst den wert von pollswitch erstmal in eine variable speicchern, dnn kannst du sie in der if() schleife verwenden.
Zu Anfang des Programms speicherst du einen Wert in der Variable Taster(meistens 0).
Dann geht das Programm in die while Schleife und fragt jedes Mal ab ob die Variable taster!=0. Das kann natürlich nie erfüllt sein, auch wenn du noch so oft einen Taster drückst, da in taster der Wert 0 für die gesamte Laufzeit des Programms drinnensteht!
Code:while(1)
{
taster=PollSwitch();
if(taster==PollSwitch() && taster!=0)
...
danke für die große hilfe.
ich werde mich morgen früh gleich noch mal dran setzen.
welchen kondensator kann man entfernen c6 oderc7?
hatdas irgend welche nebenwirkungen?
C7, das ist der, der parallel zu den Tastern liegt(siehe Schaltplan)
für was ist er denn ein gebaut woeden, wenn es ohne ihn besser geht, speich was kann ohne ihn passieren?
das ist leicht paradox, er ist dazu da um störungen zu verhindern... :D
kondensatoren zwischen masse und vcc nehmen sämtliche hochfrequente störungen auf. dieser effekt fällt jedoch mit dem entfernen weg, es kann also durchaus sein dass keine besserung oder sogar eine verschlechterung eintritt.
tip: kneif ein bein des kondensators durch, und teste ob es besser wird. wenn ja, kneif das andere auch durch - du soarst das auslöten und vermeidest das risiko an der platine was zu zerstören. du kannst den kondensator auch einbeinig da hängen lassen. wenn keine besserung eintritt, dann verschliesse das gekappte bein mit etwas lötzinn.