Pages: [1]   Go Down
Author Topic: win-avr-programm in das arduino-ide korsett reinbringen, wie...?  (Read 1114 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hallo,  wie bringt man die main.c und motor.h in der arduino-ide jetzt zum laufen?
wo muss was geändert werden? wie sieht die ordnerverteilung aus? zum compilieren mit der arduinio-ide?

gruss

main.c:
Code:
#include <avr/interrupt.h>
#include <stdlib.h>
#include <stdint.h>
#include <util/delay.h>
#include "motor.h"

int main(void)
{
   
sei();

robby_init();

_delay_ms(200);

m_wert=180;

robby_vor();
_delay_ms(1000);
robby_aus();
_delay_ms(1000);

robby_zurueck();
_delay_ms(1000);
robby_aus();
_delay_ms(1000);

robby_links();
_delay_ms(1000);
robby_aus();
_delay_ms(1000);

robby_rechts();
_delay_ms(1000);
robby_aus();


}

motor.h :
Code:
uint8_t m_wert;

void robby_init(void)
{
DDRD= (1<<PD4) | (1<<PD5);
DDRC= (1<<PC2) | (1<<PC3) | (1<<PC4) | (1<<PC5);
TCCR1A =(1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B |= (1<<CS12);
}

void re_vor(void)
{
PORTC &= ~(1<<PC4);
PORTC |= (1<<PC5);

OCR1A = m_wert;
}

void re_zur(void)
{
PORTC |= (1<<PC4);
PORTC &= ~(1<<PC5);

OCR1A = m_wert;
}

void li_vor(void)
{
PORTC &= ~(1<<PC2);
PORTC |= (1<<PC3);

OCR1B = m_wert;
}

void li_zur(void)
{
PORTC |= (1<<PC2);
PORTC &= ~(1<<PC3);

OCR1B = m_wert;
}


void robby_aus(void)
{
OCR1A = 0;
OCR1B = 0;
}

void robby_vor(void)
{
re_vor();
li_vor();
}

void robby_zurueck(void)
{
re_zur();
li_zur();
}

void robby_links(void)
{
re_vor();
li_zur();
}

void robby_rechts(void)
{
re_zur();
li_vor();
}

Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2321
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Du musst nicht wegen jedem bisschen einen neuen Thread aufmachen. Warum lässt du das nicht in dem anderen, wenn es doch um das gleiche Thema geht? Das sind doch (soweit ich das gesehen habe) nur einfache Portzuweisungen und der Konfiguration der PWM in der motor.h
Wer jetzt dein Ursprungsthema nicht kennt, weiß beispielsweise nicht, dass es um die Ansteuerung eines L293D geht. Und was ich im anderen Thread schon bemängelte: Wer Hilfe sucht, muss ausreichend Informationen geben!

Eine Umstrickerei 1:1 ist meiner Meinung nach wenig sinnvoll. Schreib das Ding doch einfach neu, ohne die Zwänge der alten Programmierung zu übernehmen. smiley-grin Und wenn du erste Ansätze in der Arduino-Programmierung hast, helfen dir sicher viele weiter.
« Last Edit: February 10, 2011, 03:42:37 am by sth77 » Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

man, das habe ich selber geschrieben für den winavr. dort läuft es.

mir geht es darum  wie es umgestrickt wird, weil es doch beim arduino  keine "main" gibt und wo was reingehört im kopf der "pde" damit es dort lauffähig.

kann man hier auch mal eine vernünftige antwort erwarten, oder werden meine fragen nicht richtig gelesen ?

es geht es hier um die "PWM", ob ein "l293d" oder eine andere motorplatine ohne l293d angesteuert wird, ist ja jetzt egal.

gruss
« Last Edit: February 10, 2011, 05:29:01 am by funkheld » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Statt einer main-Funktion wird bei Arduino die Kombination setup() und loop() verwendet. Alles was am Anfang einmalig ausgeführt werden soll, schreibt man in die setup-Funktion, danach wird das, was in loop drin steht, so lange wiederholt, bis Strom weg oder reset.

Du hast ja in deiner main keinen loop. Also werden die Aktionen einmal ausgeführt und dann passiert nichts mehr, wenn ich das richtig verstehe. Also schreibst du diesen Code in setup() rein und lässt loop() leer (oder lässt dort pin13 blinken).

Gruss
Matthias
« Last Edit: February 10, 2011, 05:39:56 am by thias » Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jup thias, danke.

jetzt läuft auch der roboter.

kann man denn in der setup()  eine while-schleife lassen?

gruss
« Last Edit: February 11, 2011, 06:00:43 am by funkheld » Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2321
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

kann man hier auch mal eine vernünftige antwort erwarten, oder werden meine fragen nicht richtig gelesen ?

es geht es hier um die "PWM", ob ein "l293d" oder eine andere motorplatine ohne l293d angesteuert wird, ist ja jetzt egal.

An dieser Stelle bin ich raus. Ich helfe zwar gern, aber so dumm muss ich mich hier nicht anmachen lassen. Aus deinem Anfangsposting geht nicht hervor, ob das Code von dir ist oder du diesen nur versuchst zu verstehen und auf dem Arduino umzusetzen. Jetzt geht es dir nach eigener Aussage plötzlich doch wieder um die PWM (also selbes Thema wie beim letzten Thread...). Steht eine Frage zur PWM im Anfangsposting? Nein!
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1128
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

{Laufwerk}:\arduino-0022\hardware\arduino\cores\arduino\main.cpp
Hier siehst du das hauptprogramm main wo deine setup() und loop() laufen.
Code:
#include <WProgram.h>

int main(void)
{
init();

setup();
   
for (;;)
loop();
       
return 0;
}

Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jup, danke.

was macht das " for ( ;; ) " eigentlich da drin?

gruss
« Last Edit: February 11, 2011, 06:01:50 am by funkheld » Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Endlosschleife
Logged

_______
Manfred

Pages: [1]   Go Up
Jump to: