Seite 2 von 2

Re: Weitere Ausgänge

Verfasst: 19.10.2008, 22:25:25
von wil
Mal noch ne Frage, im Forum steht etwas von einer Version 1.1.0, nur wo ist die oder kann man die nicht Runterladen..??
[url]ttp://www.ulrichradig.de/home/uploads/File/ET ... X_SOFT.zip[/url] Der Link dazu steht unter Ethernet ATmega32/644 Experimentierboard ziemlich am Ende http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex

Wie du siehst ist es ein anderes Projekt als das "AVR Webmodul". Die Software läuft auf beiden Projekten. Nur hat Uli keine Anbindung der SD-Karte mit drin.

Meine Version hatte ich mal als Antwort zu einer Aufforderung von Thomas hier reingestellt. (Eure Erweiterungen zum ETH_M32_EX und AVR Webmodul). Da ein paar Änderungen an Ulis Code nötig waren hatte ich kurzerhand mein komplettes Quellverzeichnis mit reingestellt. Ich habe dann in meinen Code zuletzt noch die Änderungen bis zu Ulis Version 1.0.93 mit eingepflegt. Daher der Hinweis auf die Version 1.0.93. Bis zu Ulis 100er Version sind aber keine großen Änderungen.

Deine index.htm sieht gut aus und sollte auch von der Karte gelesen werden. Nur musst du auch das richtige Hexfile verwenden. Bei meiner Version muss kein Benutzer eingegeben werden (ist mir im internen Netz zu blöd) und ich habe bei mir auch einen 14MHz Quarz drauf! Uli hat in seiner Version (ohne SD-Karte) normalerweise 16MHz.

Wenn dann die richtige Version gebrannt ist kannst du es ja auch mal direkt mit dem Aufruf der Port01.htm ausprobieren.

Re: Weitere Ausgänge

Verfasst: 24.10.2008, 08:59:12
von rorowo
Hallo PICus,
bin genauso C-Anfänger wie Du.
Hast Du dir mal die config.h angesehen ?
Hier kannst du vieles einstellen u.a. den Analogport deaktivieren, wenn du nur die EIN-AUS-Gänge verwenden willst.
Ausserdem müssen an den Ports evtl. noch Pullup´s bestückt werden (ca.10kOhm).
Denn...
wenn Du ein Häckchen beim Ausgang setzt und der Analogwert nun 1023 anzeigt, zeigt das darauf hin, das die ~5V des Ausgangs, den Du ja geschaltet hast hier angezeigt wird.
Die Anzahl der EIN u. AUS- Gänge änderst Du in der Webpage und httpc.c.
z.B. httpc.c

Code: Alles auswählen

//Schaltanweisung finden!
			if (eth_buffer[a] != *http_entry[index].post_ptr++)
			{
				http_entry[index].post_ptr = post_in;
			}
			if(*http_entry[index].post_ptr == 0) 
			{
				switch (eth_buffer[a+1])
				  {
				    case ('A'):
					  PORT_tmp = PORT_tmp + 1;
				      break;
				
				    case ('B'):
					  PORT_tmp = PORT_tmp + 2;
				      break;
				
				    case ('C'):
					  PORT_tmp = PORT_tmp + 4;
				      break;

					case ('D'):
					  PORT_tmp = PORT_tmp + 8;
				      break;
				
				    case ('E'):
					  PORT_tmp = PORT_tmp + 16;
				      break;
				
				    case ('F'):
					  PORT_tmp = PORT_tmp + 32;
				      break;
					  
					case ('G'):
					  PORT_tmp = PORT_tmp + 64;
				      break;
				
				    case ('H'):
					  PORT_tmp = PORT_tmp + 128;
					  break;
 
                    #if USE_WOL
                    case 'W':
                        wol_enable = 1;
						break;
                    #endif //USE_WOL
				  }
				http_entry[index].post_ptr = post_in;
				//Schaltanweisung wurde gefunden

...und
Webpage:

Code: Alles auswählen

	//Port Schalten und Status %PORTA0 bedeutet PORTA PIN0
	"<th width=\"30\"><p>0</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"A\" %PORTA0>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA1 bedeutet PORTA PIN1
	"<th width=\"30\"><p>1</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"B\" %PORTA1>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA2 bedeutet PORTA PIN2
	"<th width=\"30\"><p>2</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"C\" %PORTA2>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA3 bedeutet PORTA PIN3
	"<th width=\"30\"><p>3</p>\r\n"
    "<input type=\"checkbox\" name=\"OUT\" value=\"D\" %PORTA3>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA4 bedeutet PORTA PIN4
	"<th width=\"30\"><p>4</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"E\" %PORTA4>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA5 bedeutet PORTA PIN5
	"<th width=\"30\"><p>5</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"F\" %PORTA5>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA6 bedeutet PORTA PIN6
	"<th width=\"30\"><p>6</p>\r\n"
	"<input type=\"checkbox\" name=\"OUT\" value=\"G\" %PORTA6>\r\n"
	"<p align=\"left\">\r\n"
	
	//Port Schalten und Status %PORTA7 bedeutet PORTA PIN7
	"<th width=\"30\"><p>7</p>\r\n"	
	"<input type=\"checkbox\" name=\"OUT\" value=\"H\" %PORTA7>\r\n"
	"<p align=\"left\">\r\n"
	
	"</tr>\r\n"
	"<br>"
	"<tr>\r\n"
	"</table>\r\n"
	
	"<pre align=\"center\"><input type=\"submit\" name=\"SUB\" value=\"Senden\"></pre>\r\n"
	
	//Rechner über WOL einschalten
    #if USE_WOL
	"<input type=\"checkbox\" name=\"OUT\" value=\"W\">\r\n"
	"<span class=\"Stil2\">Wake On Lan</span></p>\r\n"
	"<div align=\"left\">\r\n"
	#endif //USE_WOL
    	
	"<br>\r\n"
	"<br>\r\n"
	
	//Eingänge Abfragen %PINxy x = PORT / y = PIN
	"<p><img src=\"%PIND2\" width=\"17\" height=\"17\"> Port D Pin 2</p>\r\n"
	"<p><img src=\"%PIND3\" width=\"17\" height=\"17\"> Port D Pin 3</p>\r\n"
	"<p><img src=\"%PIND4\" width=\"17\" height=\"17\"> Port D Pin 4</p>\r\n"
	"<p><img src=\"%PIND5\" width=\"17\" height=\"17\"> Port D Pin 5</p>\r\n"
	"<p><img src=\"%PIND6\" width=\"17\" height=\"17\"> Port D Pin 6</p>\r\n"
	"<p><img src=\"%PIND7\" width=\"17\" height=\"17\"> Port D Pin 7</p>\r\n"
ich hoffe ich konnte dir helfen.

Robert

Re: Weitere Ausgänge

Verfasst: 26.10.2008, 18:13:12
von PiCus
Hallo,

zunächst mal Dank an rorowo ich hab deine Worte gelesen und befolgt, dann auch noch das Tutorial gelesen und den Wert OUTA von 0x07 auf 0xFF gestellt und die Ausgänge funzen bis auf den A6, der will nicht.

Nachdem ich nun extra einen Rechner nur für diese Arbeiten zusammengebaut habe geht das Meiste ohne Probleme. AVR Studio läuft, Burn-O-Mat und auch der USB-Programmer von Ulli nach einigen Problemen mit den Treiber.

Jetzt muss ich nur den Port A6 zum Laufen bekommen dann bin ich schonmal ein großes Stück weiter.

Nochmal Dank an die Helfer..... :!:

Re: Weitere Ausgänge

Verfasst: 26.10.2008, 18:46:46
von wil
Hallo PICus,

wenn du meine Version verwendest wird der PA6 als Eingang für den Schalter vom SD-Kartenslot verwendet. Falls du alle A-Ports benötigst, musst du in der sd_raw_config.h die PA6 und PA7 auf andere Werte setzen:

Code: Alles auswählen

// PortA Pin6 auf Eingang und PullUp anschalten; Schalter zieht auf Masse
#define configure_pin_available() DDRA &= ~(1 << PA6); PORTA |= (1<<PA6)
#define configure_pin_locked() DDRA &= ~(1 << PA7); PORTA |= (1<<PA7)

// PIN6 == 1 -> keine Karte; 0 -> Karte drin
#define get_pin_available() ((PINA & (1<<PA6)))
#define get_pin_locked() 0	//((PINA & (1<<PA7)))
Gruß
wil

Re: Weitere Ausgänge

Verfasst: 26.10.2008, 19:06:31
von PiCus
Hallo Wil,
jetzt wo ich das lese kann ich mich erinnern dass du etwas geschrieben hast mit der Verbindung von Mass nach PA6. Da ich die Karte vielleicht mal beutzen will, muss den PIN wohl aussparen.
Ich werd mal sehen ob dann einen oder mehrere vom PortC verwende. Da ich z.Zt. nur Ein und Ausgänge benötige.
Mal zur Erleuterung, ich hab an allen meinen Fenstern Magnetkontakte für die EMA und schalte damit die dazugehörenden Heizkörpern mit einem Relais ein aus. also Fenster auf, Heizkörper aus. Da meine EMA noch ne Menge Ausgänge hat, will ich im Moment die Ausgänge EMA an die Eingänge Webmodul zur Visualisierung schalten. Deshalb werde ich wohl irgendwann einen Grundrissplan als HTM programmieren um den Stauts der Fenster und Türen per I-Net zu Überwachen.
Deshalb im Moment eben nur Ein- und Ausgänge. Kann sein dass ich dann noch ein zweites Modul verwende.
Aber wie schon geschrieben bin ich kein C-Programmierer.
Mal sehen, es werden nun die Nächte länger und es ist auch bald Weihnachten, da kann man noch ein paar achen machen.

PiCus