win-avr-programm in das arduino-ide korsett reinbringen, wie...?

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:

#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 :

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();
}

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: Und wenn du erste Ansätze in der Arduino-Programmierung hast, helfen dir sicher viele weiter.

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

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

jup thias, danke.

jetzt läuft auch der roboter.

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

gruss

funkheld:
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!

{Laufwerk}:\arduino-0022\hardware\arduino\cores\arduino\main.cpp
Hier siehst du das hauptprogramm main wo deine setup() und loop() laufen.

#include <WProgram.h>

int main(void)
{
	init();

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

jup, danke.

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

gruss

Endlosschleife