Kani lernt C....

We proudly present: The release of DMXControl 3.3.3!


On September 29, 2026, we held our release show for DMXControl 3.3.3. During our usual “hour-long” session, we showed you all the new features in this version and what it now has to offer.
Read all about it in the corresponding news article: We proudly present: The release of DMXControl 3.3.3!


  • Antwort: Alles.

    Lösung:
    Grundlagen bei microcontroller.net, mein Tut, Roboternetz,...

    VG.
    Hendrik

    EDIT: Den Thread kannst Du wohl so erst mal wieder schließen :rolleyes:

    (Mit Deiner Anonymität ist es übrigens Dank dem Snapshot auch vorbei, Finn ;)

    Edited 2 times, last by Hendrik Hölscher (October 22, 2008 at 8:01 PM).

  • @Kani:

    was Hendrik mit "Alles" meint:

    -> du versuchst gerade ein Windows-Programm für einen Atmel Mikroprozessor zu schreiben (Atmels können mit "EXE" nichts anfangen)

    -> was soll printf? Worauf willst du das Ausgeben? Mikroprozessoren haben ohne externe Hardware keinen Bildschirm *g*. Du kannst bei Bascom mit dem Befehl "print" einen String/Text über die RS232-Schnittstelle senden. Aber bei C nicht mit printf.


    Du musst dir bevor du programmierst erstmal klarwerden lassen: was programmiere ich wofür. Bei Mikroprozessoren ist ein "Hello World" Programm eigentlich ein blinkenlassen von LEDs. Einfacher gehts da nicht.

    Nach den LEDs kannst du mit RS232 weitermachen und Daten zwischen PC und µController austauschen. Danach was mit dem Timer oder mit dem EEProm machen und dann mal PWM und Interrupts anschauen.


    So würde ich anfangen.


    bis dann,
    Christian :)

    Mein aktuelles Video auf Youtube: Movingheads ohne Kopfschmerzen!

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

  • Quote

    (Mit Deiner Anonymität ist es übrigens Dank dem Snapshot auch vorbei, Finn ;)

    Du, da hab ich kein Stress mit. Da ich eine/mehrere Homepages besitze und da ist ein Impressum eben Pflicht. ;)

    Ja, also zum eigentlich Thema:

    Im anderen Thread habe ich gefragt, ob dieses Tutorial gut ist.
    http://www.fh-augsburg.de/informatik/vor…yris/ckmain.htm

    Da bin ich dann nach den Schritten vorgegangen.

    Könntet ihr mir mal eine Linksammlung mit erklärung geben, was ich genau alles können muss?
    Bitte, Danke xD

  • Da, was zum Spielen:

    AVR-GCC Tutorial


    ;)

    Mein aktuelles Video auf Youtube: Movingheads ohne Kopfschmerzen!

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

  • Wenn du C lernen willst, dann mach das doch erstmal ohne Mikrocontroller... Besorg dir nen freien Kompiler z.B. devcpp oder den gcc für windows. Da kannste dann auch mit printf rumspielen.

  • So, ich habe mit Markus mal ein bissl gewerkelt. Sind aber nicht zu einem erfreulichen Ergebnis bekommen. Ziel war es, LED 1 (PA0) und LED 2 (PA1) abwechselnd zum leuchten zu bringen. Und zwar mit einem 1 Sekündigen Intervall.

    Quellcode:

    Aktueller Stand: Alle LEDs sind am dauerhaften Leuchten.
    Anbei noch das komplette Projekt.
    Hat es was mit den Fusebits zutun?
    Die LEDs habe einen gemeinsamen + und der - ist an den Beinchen vom PORT A. Kann es sein, dass ich deßwegen PORTA auf Eingang DDRA = 0x00 schalten muss?

  • Hi!

    Ich kann zwar kein C (also nicht wirklich) aber ich meine Dir fehlt da noch ein zweites Delay...

    Er macht in der Schleife erst 1 an, wartet dann eine Sek, macht dann zwei an und da er dann sofort oben wieder anfängt auch die 1 wieder. Dann erst warten und so weiter...
    Habe zwar absolut keine Ahnung warum beide LEDs an sind, das muss noch ein anderer Fehler sein, aber so wie mich das anschaut müsste laut Programmtext lediglich jede Sekunde die LED2 kurz aufflackern und die erste kurz dunkel werden. Wobei ich fast fürchte, dass das "kurz" im Millisekundenbereich liegt...

    Hoc

    PS: Bei genauerem Betrachten fällt mir zusätzlich auf, dass scheinbar beide LEDs leuchten wenn das Delay "falsch" ist und ignoriert wird. Dann ist er ohne die Pause so schnell durch, dass man es schlichtweg nicht sieht.

    Mein Equipment:
    1x Hirn | 2x Augen (leicht defekt) |2x Ohren | 1x Mund |32x Zahn (zum Teil V1.5) | 1x Handundfuß-Interface
    *SCNR*

    Edited once, last by Hoc (January 8, 2009 at 8:13 AM).

  • Ich hab nochmal scharf nachgedacht. XD

    Meine zuweisung der Bits passte nicht. Deßwegen waren oft alle LEDs oder keine an.

    Außerdem fehlte (wie du gesagt hast Hoc) eine Warteschleife.
    Jetzt läuft es. Zur festigung der Befehle im meinem Kopf, werde ich mal ein Lauflicht programmieren.

  • Hi!

    Wie sieht denn der korrekte Quelltext nun aus? Vielleicht lern ich dann auch endlich mal das Zeug zu verstehen. :D

    Hoc

    Mein Equipment:
    1x Hirn | 2x Augen (leicht defekt) |2x Ohren | 1x Mund |32x Zahn (zum Teil V1.5) | 1x Handundfuß-Interface
    *SCNR*

  • Der korrekte Quellcode sieht so aus:

    Code
    /* TestschaltungVersion: 0.1Datum: 07.01.2009Autor: Finn 'Kani' SchürmannTarget: AtMega 8515Lizenz: Keine*/#include <avr/io.h>#include <util/delay.h>int main(void){	DDRA = 0xFF; //PORTA auf Ausgang stellen	PORTA = 0xFF; //Sicher gehen das zum Start alle Bits "aus" sind.	DDRB = 0x00;  //PORTB als Eingang zur Vorbeugung von Kurzschlüssen 	DDRC = 0x00;  //PORTC als Eingang zur Vorbeugung von Kurzschlüssen 	DDRD = 0x00;  //PORTD als Eingang zur Vorbeugung von Kurzschlüssen		while( 1 )		{			PORTA |= (1 << PA1); // Bit PA1 wird gesetzt			PORTA &= ~(1 << PA0); // Bit PA0 wird gelöscht 				_delay_ms(1000);			PORTA |= (1 << PA0); // Bit PA0 wird gesetzt 			PORTA &= ~(1 << PA1); // Bit PA1 wird gelöscht				_delay_ms(1000);		}	}

    Ich hab dann mal weil es so lustig ist einen LED-Doppelblitz gebaut.
    Also LED 1 blitzt zweimal auf und dann LED 2 zweimal....so wie man es von den Frontblitzern bei Einsatzfahrzeugen der Behörden kennt.

    Edited once, last by Kani (January 8, 2009 at 6:23 PM).

  • Könnte mir vllt. jemand freundlicher Weise erklären oder einen guten Link geben, wo man Software-PWM lernen kann? Also die Grundstruktur mit einem Anwendungsbeispiel in C? Danke!

  • Newly created posts will remain inaccessible for others until approved by a moderator. The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.