Forum: Mikrocontroller und Digitale Elektronik AVR-IO Radig


von juppo (Gast)


Lesenswert?

Moin an alle

Versuche mich gerade an das Pollin AVR-IO -
Läuf soweit mit der Pollin Software.

Gibt es ein AVR Studio Projekt für den Source von Ulrich Radig ??
Oder anderen Source für diese Platine für's AVR Studio??

Ich weiß Tausende von Links usw.  aber ein kleiner Hinweiß wäe nett.

Gruß Juppo

von Chris R. (hownottobeseen)


Angehängte Dateien:

Lesenswert?

Hallo juppo,

ich habe mal die geänderten Dateien aus meinem SVN-Repo gezippt.
Das einzige, was du noch machen musst, ist die MAC-Adresse in der 
config.h eintragen und ggf. das Projektverzeichnis in der .aps-Datei 
anpassen (aktuell D:\AVR\ETH_M32\).

Getestet mit Version 1.2.5.

HTH

von juppo (Gast)


Lesenswert?

Besten Dank

Compilieren lässt sich die Sache

Aber nach reset kommt keine definierten zeichen auf der seriellen ??
Habe bei Options Frequenz 16000000 eingetragen
Denke mal die baudrate ist noch daneben.

Welche Mac Adresse muss da rein .die vom Orginalen ??
Ip Adresse wäre dann 192.168.0.99 ??


Gruß Juppo

von juppo (Gast)


Lesenswert?

Es läuft

An der serielle ist eine Cam oder so angeschlossen??


Besten Dank ,der Anfang ist geschafft.

Gruß Juppo

von juppo (Gast)


Lesenswert?

Hallo Ich nochmal

Ich haben den Atmega 644P

Muss ich dann das Makfile makefile_Atmega664 im AVR Studio mit 
einbinden??

Bekomme die Serielle nicht zum Laufen.

Gruß Juppo

von Chris R. (hownottobeseen)


Lesenswert?

Hallo,

die Makefile brauchst du nicht einbinden, das Projekt ist bereits für 
den Mega644 konfiguriert.
Auf dem seriellen Port läuft wie im Original die Konsole, bei 9600 8N1 
solltest du eigentlich Daten bekommen.
Kontrollier mal die Fuse-Bits, die sind beim Net-IO auch gerne mal 
falsch.

Außerdem scheint der Pegelwandler beim Net-IO manchmal nicht zu tun, wie 
er soll. Schau mal in der FAQ zum Net-IO hier auf der Seite

von juppo (Gast)


Lesenswert?

Nach dem Reset kommen Zeichen ,aber nicht definierte.
Als wenn die Baudrate nicht stimmt

Mit dser Orginal Software funkt. alles.

Schauen wir mal.

von juppo (Gast)


Lesenswert?

Wie müssen die bei den 644 stehen ?

Dann stimmt die Freq, nicht und der uart kann nicht richtig arbeiten ?!

von Chris R. (hownottobeseen)


Lesenswert?

ich hab hier: H: 0x99, L: 0xEE und Extended: 0xFF

von juppo (Gast)


Lesenswert?

Jo das war es.

Besten Dank

So nur noch eins
Wie kann ich dynamische Werte dastellen.
Also zB. die AD-Werte ,alles 500ms oä. automatisch updaten.

von Chris R. (hownottobeseen)


Lesenswert?

ich hab sowas mit XHR und Json gemacht. Ist kompakt und funktioniert 
recht gut. Dazu habe ich eine neue Seite im Flash generiert, die alle 
Variablen ausgibt:
1
PROGMEM char Page2[] = {
2
  "{\"analog\":["
3
    "%VA@01,"
4
    "%VA@02,"
5
    "%VA@03,"
6
    "%VA@04,"
7
    "%VA@05,"
8
    "%VA@06,"
9
    "%VA@07,"
10
    "%VA@08,"
11
    "%VA@09,"
12
    "%VA@10"
13
  "],\"temp\":["
14
    "%DS75@0,"
15
    "%DS75@1,"
16
    "%DS75@2,"
17
    "%DS75@3,"
18
    "%DS75@4,"
19
    "%DS75@5,"
20
    "%DS75@6,"
21
    "%DS75@7"
22
  "],\"time\":"
23
  "\"%TIME\""
24
  "}"
25
  "%END"
26
};

Die Indexseite sieht dann wie folgt aus:
1
PROGMEM char Page1[] = {
2
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
3
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; "
4
"charset=utf-8\" /><title>My AVR does json!</title><script type=\"text/javascript\">HTTPRequest=function(){};HTTPRequest."
5
"prototype={isSupported:function(){return!!this.getConnection()},events:[\"start\",\"open\",\"send\",\"load\",\"end\"],filter:"
6
"encodeURIComponent,getConnection:function(){var i,o=[function(){return new ActiveXObject(\"Msxml2.XMLHTTP\")},function(){return"
7
" new ActiveXObject(\"Microsoft.XMLHTTP\")},function(){return new XMLHttpRequest()}];for(i=o.length;i--;){try{return o[i]()}catch(e)"
8
"{}}return null},formatParams:function(a){var i,r=[];for(i in a){r[r.length]=i+\"=\"+(this.filter?this.filter(a[i]):a[i])}return r."
9
"join(\"&\")},get:function(a,b,c,d){return this.request(\"GET\",a,null,c,null,d)},post:function(a,b,c,d){return this.request(\"POST\""
10
",a,b=this.formatParams(b),c,{\"Connection\":\"close\",\"Content-Length\":b.length,\"Method\":\"POST \"+a+\" HTTP/1.1\",\"Content-Type\""
11
":\"application/x-www-form-urlencoded; charset=utf-8\"},d)},request:function(a,b,c,d,g,h){var i,o=this.getConnection(),f=d instanceof"
12
" Function;try{o.open(a,b,!h);h||(o.onreadystatechange=function(){var s=HTTPRequest.prototype.events[o.readyState];f?d(o):s in d&&d[s]"
13
"(o)});if(g){for(i in{USER_AGENT:0,XUSER_AGENT:0}){i in g||(g[i]=\"XMLHttpRequest\")}for(i in g){o.setRequestHeader(i,g[i])}}o.send(c);"
14
"h&&(f?d(o,oThis):d[\"end\"]&&d[\"end\"](o,oThis));return true}catch(e){return false}}};var d=document,gebi=function(e){return "
15
"d.getElementById(e);},gebt=function(e){return d.getElementsByTagName(e)};running=false;window.onload=function(){list=[addul(),"
16
"addul()];tmr=window.setInterval(\"refresh()\",500);};function putdata(){putlist(list[0],data.analog);putlist(list[1],data.temp,\"°C\");"
17
"}function putlist(a,e,f){if(f===undefined){f=\"\"}while(a.firstChild!==null){a.removeChild(a.firstChild)}for(var i=0;i<e.length;i++)"
18
"{var b=d.createElement(\"li\"),c=d.createTextNode(e[i]+f);b.appendChild(c);a.appendChild(b)}}function addul(){a=gebt(\"body\")[0];"
19
"return a.appendChild(d.createElement(\"ul\"))}function refresh(){if(running===false){running=true;var a=new HTTPRequest();a.filter="
20
"escape;a.get(\"data.json\",null,{end:function(e){data=eval(\"(\"+e.responseText+\")\");putdata();running=false}})}}</script></head>"
21
"<body></body></html>"
22
"%END"
23
};


in der WEBPAGE_TABLE finden sich dann folgende Einträge:
1
WEBPAGE_ITEM WEBPAGE_TABLE[] = // Befehls-Tabelle
2
{
3
  {"index.htm",Page1},
4
  {"data.json",Page2},
5
  ...
6
};

Die Variablen %DS75@x fallen für dich weg, du hast sicher keine 
Temperatursensoren dran ;)

von juppo (Gast)


Lesenswert?

Das kann ich mal testen

Ich werde einen Externen AD Wandler anbauen.
Um dann über ein GSM Modem die Daten zu verfügung zu stelen.
Wie ich dann ohne Router im I-Net kommen muss ich dann auch noch mal 
nachschauen.
Daten per FTP übertragen sollte auch kein Problem sein ??

Besten Dank nochmal
Juppo

von Chris R. (hownottobeseen)


Lesenswert?

juppo schrieb:
> Daten per FTP übertragen sollte auch kein Problem sein ??

Kann ich momentan nicht sagen.

Bei meinem aktuellen Vorhaben möchte ich die erfassten Daten per GET 
oder POST an meinen Webserver schicken, der sie dann in die 
MySQL-Datenbank speichert. Wie ich das auf dem AVR abbilde, weiß ich 
noch nicht genau. Was der Webhoster dazu sagt auch nicht ;)

von juppo (Gast)


Lesenswert?

Hallo Chris

Ich habe deine Source in webpage.h mit eingebunden.

Aber ich bekommen nur " My AVR does json! "

Muss der Contoller online mit Internet sein oder so??
Gruß

von juppo (Gast)


Lesenswert?

Es klappt doch was

Es werden die 10 VA@ angezeigt mit einem dicken Punkt davor.

Die Werte werden sofort aktualisiert.

Dan muss man nur noch mal rausfinden wo die x,y Coodinaten sind und die 
Eigenschaft der Zeichen.

ist doch mal wieder ein erfolg.
Gruß Juppo

von Chris R. (hownottobeseen)


Angehängte Dateien:

Lesenswert?

Ich hoffe es ist ok, dass ich die PN hier reinkopiert habe, vielleicht 
interessiert es andere auch.

juppo schrieb per PN:

> Das klappt hervorragende mit den dynamische Variablen im Explorer.
> Kanst du mir noch einen Tip geben wie man in Java die Werte nicht
> als Liste ausgibt,sonder als einzelne Werte,  formatiert und wo genau
> die Ausgabe erfolgt.

Ok, der Quelltext ist zugegeben etwas unübersichtlich ;)

ich hab ihn mal kurz aufgedröselt und angehängt. Kann jetzt aber spontan 
nicht sagen, ob alles so funktioniert, wie's soll.

Der XHR-Code ist von jsfromhell.com (und genauso ist er auch, würde ich 
jetzt nicht mehr verwenden, genauso wie eval zum Rückgewinnen der Daten)

Wenn die Daten angekommen sind, wird die funktion putdata() ausgeführt, 
welche einfach nur das Erstellen der Liste (putlist()) für data.analog 
und date.temp ausführt.

In dieser Funktion wird dann die Liste wieder generiert.

Da du mit JavaScript (großer Unterschied zu Java!) scheinbar noch nicht 
so große Erfahrungen hast: Hol dir Firebug für'n Firefox 
(http://www.getfirebug.com), lade die Seite, drück F12 und tippe in der 
Befehlszeile einfach mal
1
dir(data)
ein. Dann siehst du die Struktur des Arrays/Objekts.

Wenn du dich nicht mit dem Document Object Model herumschlagen willst, 
kannst du auch mit innerHtml arbeiten. Das ist zwar nicht unbedingt 
sauber, aber für den Anfang und Privatgebrauch ok.

erstelle dazu auf der Seite einfach folgendes Tag:
1
<div id="meininhalt"></div>

in Javascript kannst du dann wie folgt auf den Inhalt zugreifen:
1
document.getElementByTagId("meininhalt")[0].innerHTML = "hallo Welt!";

Da ich hier aber keinen JavaScript-Grundkurs machen will, sei auf die 
üblichen verdächtigen verwiesen:

http://de.selfhtml.org bzw. http://de.selfhtml.org/javascript/intro.htm
http://www.netzmafia.de/skripten/javascript/index.html sieht ganz gut 
aus
oder einfach mal nach "Javascript Einführung" suchen.

von Juppo N. (juppo)


Lesenswert?

Ja da ist doch ein Lichtblick

Es geht eigendlich nur darum die Variable zu plazieren und dann mit 
normalen HTML die Seite generieren.

HTML Java kenne ich kaum,deshalb ...

Gruß Juppo

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.