Forum: Mikrocontroller und Digitale Elektronik blumenbewässerung mit dem atmega16


von Olaf S. (olafseger)


Lesenswert?

habe versucht mit dem avr studio 4.19
habe daraus versucht einen hex code zu machen
1
#include "m16def.inc"
2
int adc(void);
3
void pump(void);
4
int adc_value;
5
int main(void)
6
 {
7
  DDRC=0x01;                          //Defining PC0 as output
8
  ADCSRA=0x87;                    //Setting the mode of operation
9
  ADMUX=0x00;                     //Selection of channel and bit alignment
10
  while(1)
11
   {
12
     adc_value=adc();                //reading moisture level
13
     pump();                               //Pump activator routine
14
   }
15
   return 0;
16
 }
17
 
18
int adc(void)
19
 {
20
   int lower_bits,higher_bits,result;  
21
   ADCSRA|=(1<<6);              //Turning on conversion
22
   while(ADIF==0);
23
   lower_bits=ADCL;
24
   higher_bits=ADCH;
25
   result=lower_bits|higher_bits<<8;         //Accessing converted value by shifting
26
   return result;
27
 }
28
 
29
void pump(void)
30
 {
31
  if(adc_value>=700)                                //Pump ON trigger point
32
   {
33
     PORTC|=(1<<0);
34
   }
35
  else if(adc_value<=600)                        //Pump Off trigger point
36
   {
37
     PORTC&=~(1<<0);
38
   }
39
 }
leiter one erfolg
fehlermeldung von avr studio
C:\Dokumente und Einstellungen\Super Olaf\Desktop\olafseger123.asm(1): 
Including file 'C:\Programme\Atmel\AVR 
Tools\AvrAssembler2\Appnotes\m16def.inc'

C:\Dokumente und Einstellungen\Super Olaf\Desktop\olafseger123.asm(2): 
error: syntax error, unexpected FUNCTION

der cod stammt von hir
http://www.gadgetronicx.com/automatic-plant-watering-system/

bin blutiger anfänger in der avr sene
(nicht mich gleich zerfleischen)

von grundschüler (Gast)


Lesenswert?

Olaf Seger schrieb:
> C:\Dokumente und Einstellungen\Super Olaf\Desktop\olafseger123.asm(2):

Zumindest bei WINAVR gabs Proleme mit blanks in Dateinamen. Umlaute und 
blanks besser vermeiden.

von ?!? (Gast)


Lesenswert?

Du scheinst dein File mit der Endung "*.asm" versehen zu haben, obwohl 
im Quelltext eine c-Syntax verwendet wird. In diesem Falle muß das File 
nicht "*.asm" heißen, sondern "*.c".

von Olaf S. (olafseger)


Lesenswert?

ist das programm in gcc geschrieben ???(und nicht in Assembler ??)

ich habe es mit gcc probiert
und habe 1 fehler meldung von avr studio4

Build started 11.6.2015 at 21:46:38
avr-gcc  -mmcu=atmega16 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT wasser123.o 
-MF dep/wasser123.o.d  -c  ../wasser123.c
../wasser123.c:1:22: fatal error: m16def.inc: No such file or directory
compilation terminated.
make: *** [wasser123.o] Fehler 1
Build failed with 1 errors and 0 warnings...

nicht vergessen ich bin anfänger
und mache das zum ersten mal

PS
1000 mal danke für die schnelle antwort

von Karl H. (kbuchegg)


Lesenswert?

Olaf Seger schrieb:

> ../wasser123.c:1:22: fatal error: m16def.inc: No such file or directory

Als du das Projekt erstellt hast, hast du dem AVR Studio schon 
mitgeteilt, dass du einen Mega16 hast.

die Zeile heisst ganz einfach nur
1
#include <avr/io.h>

Und ganz ehrlich: Der Code ist sowas von mies. Den kannst du getrost 
auch gleich wegwerfen.

von g457 (Gast)


Lesenswert?

> fatal error: m16def.inc: No such file or directory

Was willst du denn mit der m16def.inc? Du brauchst die <avr/io.h>

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
> Olaf Seger schrieb:
>
>> ../wasser123.c:1:22: fatal error: m16def.inc: No such file or directory
>
> Als du das Projekt erstellt hast, hast du dem AVR Studio schon
> mitgeteilt, dass du einen Mega16 hast.
>
> die Zeile heisst ganz einfach nur
>
1
> #include <avr/io.h>
2
>

Hey!
Im Original auf der verlinkten Webseite steht das auch genau so drinn!

Warum hast du das geändert?

von BirgerT (Gast)


Lesenswert?

Hi Olaf,

#include "m16def.inc" ist für Assembler-Projekte

für C-Projekte heißt das
#include <avr/io.h>

Du solltest im AVR Studio zuerst ein "C-Projekt" anlegen,
mit welchem Controller und Board willst Du das machen?

Eigenbau oder fertiger Bausatz?

Weil - in den Projekteinstellungen muss der Zielprozessor und die 
Arbeitsfrequenz eingestellt werden.

Wenn Du das hast, den (richtigen) Code von der Website kopieren (Copy) 
und in Deine main.c (Paste) einfügen.

Das sollte sich erstmal kompilieren lassen.

Aber Du musst bei einem Eigenbau auch die richtigen Fuses setzen.

Und - OFF TOPIC - noch ein gut gemeinter Hinweis, hier gibt es einen 
ellenlangen Thread, in dem man sich über Rechtschreibfehler und 
Ausdrucksweisen amüsiert; deshalb für's nächste Mal
leiter one erfolg --> Leider ohne Erfolg.

von BirgerT (Gast)


Lesenswert?

Also meine Antwort hat wohl etwas länger gebraucht, dass da schon so 
viele neue Posts sind..

Um wieviel Bewässerung geht es eigentlich, und muss es unbedingt ein 
Controller sein?

Wenn wir daheim bei längerer Abwesenheit Blumen(töpfe) giessen 
müss(t)en, dann stellen wir die um einen großen Eimer mit Wasser. Dann 
feuchte Wollfäden die mit einem Ende bis tief in den Wassereimer hängen 
und mit dem anderen Ende in die Erde der Blumentöpfe gesteckt werden.

Unglaublich? Aber es funzt..

von Wolfgang (Gast)


Lesenswert?

Olaf Seger schrieb:
> leiter one erfolg

Stolze Leistung
SCNR

Was haben deine Compiler-Probleme eigentlich mit Blumenbewässerung zu 
tun?

von Peter D. (peda)


Lesenswert?

Olaf Seger schrieb:
> bin blutiger anfänger in der avr sene

Programmieren lernt man aber nicht dadurch, indem man fremden Code 
falsch abschreibt.

Und Herr Duden rotiert mal wieder im Grabe mit 1000 U/min.

von Olaf S. (olafseger)


Lesenswert?

Karl Heinz schrieb:
> Und ganz ehrlich: Der Code ist sowas von mies. Den kannst du getrost
> auch gleich wegwerfen

dann machen mir aus mies gut

BirgerT schrieb:
> leiter one erfolg --> Leider ohne Erfolg

das h hat geklemmt

Peter Dannegger schrieb:
> Programmieren lernt man aber nicht dadurch, indem man fremden Code
> falsch abschreibt.

ich bin ja von Assembler ausgegangen

BirgerT schrieb:
> Um wieviel Bewässerung geht es eigentlich, und muss es unbedingt ein
> Controller sein?

JA als Experiment

habe es gemacht wie es birgerT gesackt hat
und bekomme folgende meldung (aber woch ist die Hex Datei)
Program:     208 bytes (1.3% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.2% Full)
(.data + .bss + .noinit)

von Karl H. (kbuchegg)


Lesenswert?

Olaf Seger schrieb:
> Karl Heinz schrieb:
>> Und ganz ehrlich: Der Code ist sowas von mies. Den kannst du getrost
>> auch gleich wegwerfen
>
> dann machen mir aus mies gut

Warum sollte ich?
Es ist dein Projekt!

Üblicherweise lernt man zuerst die notwendigen Techniken, ehe man ein 
reales Projekt angeht. Das Prinzip hat sich seit Jahrhunderten bewährt.
Ich helf gerne aus, wenn es um das eine oder andere Detail geht. 
Meinetwegen auch schon mal, wenn ein Ansatz verkorkst ist. Aber ich mach 
nicht dein Projekt von vorne bis hinten und bring dir auch noch bei 0 
beginnend 'so nebenbei' die Grundlagen bei.

von Jay (Gast)


Lesenswert?

"Blumen"bewässerung. Natürlich, ja ist klar.

von Olaf S. (olafseger)


Lesenswert?

Karl Heinz schrieb:
> Es ist dein Projekt!

eigentlich ist es Frank Donald Projekt
ich will es nur nachbauen
(auch wenn das programm mies ist )

ach ja was ist damit los

Olaf Seger schrieb:
> habe es gemacht wie es birgerT gesackt hat
> und bekomme folgende meldung (aber woch ist die Hex Datei)
> Program:     208 bytes (1.3% Full)
> (.text + .data + .bootloader)
>
> Data:          2 bytes (0.2% Full)
> (.data + .bss + .noinit)

von Karl H. (kbuchegg)


Lesenswert?

Olaf Seger schrieb:

> ach ja was ist damit los

nix.
Was soll damit los sein?

Das Programm ist übersetzt worden, auf dem Projektverzeichnis (genauer 
in einem Subverzeichnis) liegt ein Hex-File, das in den Controller 
gebrannt werden kann.

von Olaf S. (olafseger)


Lesenswert?

sorry habe den ordner übersehen(Ordner default)

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.