Forum: Mikrocontroller und Digitale Elektronik Mobiler Roboter- Assembler- Atmega 48- AVR studio 4


von Tobias Erb (Gast)


Angehängte Dateien:

Lesenswert?

Guten abend,

ich baue zur zeit einen Mobilen Roboter der später auch noch einer linie 
folgen soll.

Ich programmiere mit assembler, verwende den atmega 48 (plus den l293d, 
für die motoren) und das AVR studio 4.

Als Basis habe ich den ARX- CH 09 verwendet. Der schaltplan für die 
motoren befindet sich im anhang.

Zur zeit verusche ich per pwm das ding zum laufen zu bekommen, da es 
nicht einmal geradeausfahren kann, da die motoren nicht 100% baugleich 
sind, denke ich.

Nun habe ich schonmal ein programm geschrieben. Ich komme jedoch leider 
nun nicht mehr weiter, da ich noch rellativ neu bin. Mein bisheriges 
Programm, ebenfalls im Anhang.

Für das verfolgen der linie später, habe ich mir gedacht, dass ich zwei 
phototransistoren verwende. Wie ich das jedoch programmieren möchte, 
habe ich mir noch keine gedanken gemacht.

ich würde mich über hilfe jeglicher art sehr freuen.

Liebe Grüße Tobias
von Floh (Gast)


Lesenswert?

Tobias Erb schrieb:
> Für das verfolgen der linie später, habe ich mir gedacht, dass ich zwei
> phototransistoren verwende. Wie ich das jedoch programmieren möchte,
> habe ich mir noch keine gedanken gemacht.

Der in meinen Augen einfachste Weg bei Panzerantrieb ist der:
(ein Sensor in der Mitte vor der gedachten Radachse, links und rechts 
angetrieben)

Endlosschleife:
  wenn Sensor schwarz
    rechts aus
    links vorwärts
  wenn Sensor weiß
    links aus
    rechts vorwärts

:-)
von Tobias Erb (Gast)


Lesenswert?

ja so ähnlich hab ichs mir auch überlegt. aber erstmal muss ich das ding 
zum laufen brigen...
keine ne idee zum programm?
von Floh (Gast)


Lesenswert?

Tobias Erb schrieb:
> keine ne idee zum programm?

Ja was hast du denn bis jetzt?
von Karl H. (kbuchegg)


Lesenswert?

Das Programm kommt mir aber sehr bekannt vor :-)
Nicht alles, aber weite Teile davon.

Ich kann jetzt nicht mehr sagen, ob ich damals den Fehler gemacht hab, 
oder ob du bei der Übernahme einen Fehler gemacht hast (und ich will mir 
jetzt das Original auch nicht suchen), aber vergleich mal die 
Kommentierung mit dem tatsächlich programmierten
1
    ;
2
    ; Timer 1 einstellen
3
    ;
4
    ; Modus 14:
5
    ;    Fast PWM, Top von ICR1
6
    ;
7
    ;     WGM13    WGM12   WGM11    WGM10
8
    ;      1        1       1        0
9
    ;
10
    ;    Timer Vorteiler: 256
11
    ;     CS12     CS11    CS10
12
    ;      1        0       0
13
    ;
14
    ; Steuerung des Ausgangsport: Set at BOTTOM, Clear at match
15
    ;     COM1A1   COM1A0
16
    ;      1        0
17
    ;
18
 
19
    ldi      temp1, (1<<COM1A1) | (1<<COM1B1) | (1<<WGM10) | (1<<WGM11)
20
    sts      TCCR1A, temp1
21
 
22
    ldi      temp1, (1<<WGM13) | (1<<WGM12) | (1<<CS11)
23
    sts      TCCR1B, temp1

Welche WGM Bits werden gesetzt und welche sollten nach Kommentar gesetzt 
sein. Und dann vergleichst du mal mit dem Datenblatt, was dieser Fehler 
eigentlich bewirkt hat.
von Tobias Erb (Gast)


Lesenswert?

ich habs eilweise von nem nem kumpel, aber dachte der hats selber 
gemacht.
der fehler war ganz einfach, habe :
.def temp2         = r18
.def temp3         = r19
vergessen.

jetz sagt mit mein avr 4 dass kein fehler mehr vorhanden is, rührt sich 
aber imer noch nix :(
von Karl H. (kbuchegg)


Lesenswert?

Tobias Erb schrieb:
> ich habs eilweise von nem nem kumpel, aber dachte der hats selber
> gemacht.
> der fehler war ganz einfach, habe :
> .def temp2         = r18
> .def temp3         = r19
> vergessen.

Wenn du Syntaxfehler in deiner Anfrage nicht als solche kennzeichnest, 
bist du selber schuld, wenn kein Mensch danach sucht. Normalerweise 
gehen wir davon aus, dass ein Code fehlerfrei assemblierbar/compilierbar 
ist, solange der Fragesteller nichts anderes in der Anfrage erwähnt (und 
in solchen Fällen kommt dann sofort die Rückfrage: Wie lautet die 
Fehlermeldung)

>
> jetz sagt mit mein avr 4 dass kein fehler mehr vorhanden is, rührt sich
> aber imer noch nix :(

womit wir wieder bei meinem Einwand wären.
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
Noch kein Account? Hier anmelden.