Forum: Mikrocontroller und Digitale Elektronik Arduino mit reinem C programmieren


von D. (Gast)


Lesenswert?

Hallo zusammen,

Da ich der Meinung bin, dass man mit der Standard IDE von Arduino nichts 
dazulernen kann, würde ich das ganze selber mit Atmel programmieren.

Die Einstellungen habe ich bisher richtig und ein einfaches 
blink-Beispiel auch:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  DDRD=0b01000010;

  while(1)
    {
    PORTD=0b01000000;
    _delay_ms(333);
    PORTD=0b00000000;
    _delay_ms(333);
    }
}

Leider finde ich nirgends weitere Beispiele. Ich würde gerne auch das 
Bluetooth Modul & LCD Display verwenden, genaue Beschreibungen bzgl. 
Atmel Programmierung gibt es aber leider nicht, wie ich sehe.

Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?

PS: Verwende das Arduino UNO Board mit dem ATMega328p

LG
D.

von Uwe (de0508)


Lesenswert?

Guten Abend,

war hier nicht nicht so eine Quelle:

http://www.mikrocontroller.net

Ein passender Einstieg wäre wohl:

http://www.mikrocontroller.net/articles/AVR-Tutorial

Man müsste nur alles Lesen. Viel Erfolg.

von Max H. (hartl192)


Lesenswert?

D. schrieb:
> Leider finde ich nirgends weitere Beispiele.
Liegt das vllt. daran, dass du nicht gesucht hast?
Schon hier auf dieser Website findest du viele:
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

> Bluetooth Modul
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
> LCD Display verwenden
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

D. schrieb:


> Die Einstellungen habe ich bisher richtig und ein einfaches
> blink-Beispiel auch:
dann ändere dein Beispiel mal um, dass es nicht einfach den kompletten 
Port ohne Ansehen des aktellen Zustands der Portbits nei beschreibt, 
sondern das du Bitmanipulationen dazu benutzt, um gezielt einzelne 
Bits auf 0 bzw. 1 zu setzen.
Das ist deine erste Basistechnik, die du beherrschen musst und die dir 
in der Arduino Welt die Funktion digitalWrite abnimmt.

> Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?

Denk dir was aus.
Zb ein Lauflicht über alle 8 Portbits. Ein Knight Rider Lauflicht. Eine 
Ampel.
Nächster Schritt: die Hinzunahme von Eingangspins.

von Stefan S. (sschultewolter)


Lesenswert?

Um welchen Hersteller (Vetrieb von AVR-Entwicklungsplatinen) es sich 
handelt, spielt keine Rolle. Nutzte selber immer mal gerne die Pro Mini 
(1:1 China Klone) zum programmieren, da diese preislich nicht wirklich 
teurer als die einzelnen MCUs sind.

Wenns halt mal ein Atmega328P sein muss für Hardware UART, dann greife 
ich gerne auf diese zu. Ansonsten wenn das überhaupt nicht erforderlich 
und unnötig mit Software UART ist, dann bleibe ich bei Attinys für meine 
Projekte.

Es würde sich anbieten, am besten mal eine Lektüre zu dem Thema zu 
besorgen. Bei mir hat es mit Arduino programmieren in C aus dem Franzis 
Verlag angefangen. Jedoch gleichzeitig auch das Tutorial hier oder 
RN-Wissen gelesen und abgearbeitet.

"Bluetooth Modul & LCD Display" sind dank des AVR-Tutorial hier mehr 
oder weniger nach LEDs zum Leuchten bringen das trivialste.

Ist das Bluetooth Modul entsprechend über die AT-Befehle passend 
eingestellt, funktioniert es wie mit der Seriellen Konsole. Zum LCD 
Display gibt es in AVR-Tutorial ausreichend Infos. Sogar eine Lib + 
DemoCode ist dabei. Ich nutzte Displays mit dem Attiny84 im 4Bit Mode. 
Kein Problem.

Ich verstehe also das Problem nicht!

von Da H. (darko91)


Lesenswert?

Karl Heinz schrieb:
> D. schrieb:
>
>
>> Die Einstellungen habe ich bisher richtig und ein einfaches
>> blink-Beispiel auch:
> dann ändere dein Beispiel mal um, dass es nicht einfach den kompletten
> Port ohne Ansehen des aktellen Zustands der Portbits nei beschreibt,
> sondern das du Bitmanipulationen dazu benutzt, um gezielt einzelne
> Bits auf 0 bzw. 1 zu setzen.
> Das ist deine erste Basistechnik, die du beherrschen musst und die dir
> in der Arduino Welt die Funktion digitalWrite abnimmt.
>
>> Kennt jemand vielleicht eine Seite oder hat selber Beispiele für mich?
>
> Denk dir was aus.
> Zb ein Lauflicht über alle 8 Portbits. Ein Knight Rider Lauflicht. Eine
> Ampel.
> Nächster Schritt: die Hinzunahme von Eingangspins.

Danke für die Infos! Mit Bitmanipulation habe ich auch bis jetzt
gearbeitet, dieses Binär-Beispiel habe ich gefunden, anwenden werde ich
diese Art aber eh nicht.
Bzgl. Beispiele dachte ich z.B. an ein fertiges Button-Beispiel für 
Anfänger, werde mich aber im Tutorial umsehen :)
LG

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.