Schau mal hier:
http://www.ulrichradig.de/site/forum/vi ... =35&t=1264
Ich denke, mit der Antwort von Wil solltest du schon was anfangen können.
Bei mir bin ich mit _delay_ms(...); klargekommen, eingetragen hab ich das ganze bis jetzt nur in der httpd.c und sieht so aus:
Code: Alles auswählen
PORTA = PORT_tmp;
PORT_tmp = 0;
//hier kommt der Zusatz für den Timer:
_delay_ms(200);
//und den Ausgang wieder ausschalten:
PORTA = 0;
Bei deinen langen gewünschten Zeiten wird dir _delay_ms(...); aber wohl keine große Hilfe sein, denn solange der Timer läuft, macht der Controller nichts anderes als Zeit zu vertrödeln - die Webseite wird also erst nach Ablauf des Timers übertragen.
Noch ein bisschen Howto zu den Buttons:
Wenn du nur noch mit Buttons arbeiten willst und keine Checkboxen mehr haben willst, dann müssen die Buttons in der webpage.h so aussehen:
Code: Alles auswählen
"<form name=\"form1\" method=\"post\" action=\"\">"
"<input type=\"hidden\" name=\"OUT\" value=\"A\">"
"<input type=\"submit\" name=\"SUB\" value=\"Beschriftung_des_Button\">"
"</form>"
Grafische Buttons sind deutlich aufwändiger, weil normalerweise die Koordinaten des Mausklicks mit übertragen werden und daher statt "
OUT=A&SUB=Name_des_Button" bei grafischen Buttons "
OUT=A&SUB.x=8
&SUB.y=9" übertragen wird. Damit kann die Software dann nichts anfangen.
Meine Lösung für grafische Buttons sieht in der webpage.h so aus:
Erstmal etwas Javascript im HTML-Title:
Code: Alles auswählen
"<script type=\"text/javascript\">\r\n"
"function send(pin) {\r\n"
"var OUT = document.createElement(\"INPUT\");\r\n"
"OUT.type = \"hidden\";\r\n"
"OUT.value = pin;\r\n"
"OUT.name = \"OUT\";\r\n"
"document.getElementById(\"hide\").appendChild(OUT);\r\n"
"var SUB = document.createElement(\"INPUT\");\r\n"
"SUB.type = \"hidden\";\r\n"
"SUB.value = \"x\";\r\n"
"SUB.name = \"SUB\";\r\n"
"document.getElementById(\"hide\").appendChild(SUB);\r\n"
"document.getElementById(\"hide\").submit()\r\n"
"}\r\n"
"</script>\r\n"
Dann muss im Body ein Element verhanden sein, was die Methode "Post" verwendet, um diese dann vom Javascript übernehmen zu können:
Code: Alles auswählen
"<div style=\"display: none;\"><form method=\"post\" action=\"\" id=\"hide\"></form></div>\r\n"
Und der eigentliche grafische Button sieht dann so aus:
Code: Alles auswählen
"<a href=\"javascript:send('A')\"><img src=\"%PORTA0\" border=\"0\"></a>\r\n"
Damit bei %PORTA0 eine Grafik ausgegeben wird, habe ich noch die translate.c angepasst (direkt %PINA0 abzufragen sollte aber glaube ich auch gehen):
Code: Alles auswählen
if(b) {
//strcpy_P(dest, PSTR("checked")); Ursprünglicher Eintrag
strcpy_P(dest, PSTR("ledon.gif"));
}
else {
//strcpy_P(dest, PSTR("unchecked")); Ursprünglicher Eintrag
strcpy_P(dest, PSTR("ledoff.gif"));
}