Hi!
Ich habe ein Problem und bin kurz vor dem Verzweifeln.
Ich habe ein Pollin Atmel Evaluationsboard V2.0.1. Dieses Board ist nun
gelötet, mit einem ATMega16 bestückt und vie einem Prolific
USB==>Seriell Wandler mit dem PC verbunden.
Programmiert wird mit PonyProg, was auch mehr oder weniger funktioniert.
Das Problem ist nun folgendes: Der µC wird vie PonyProg und dem
USB==>Seriell Wandler mit dem "Testtool.hex" geflasht. Nach dem
Schreiben breche ich bei der Verifizierung ab, da das laut Internet
nicht nötig ist und ca. 2h dauert.
Wenn das Programm auf dem µC ist, wird die Stromversorgung unterbrochen
und wieder angeschlossen, damit der µC "von vorne anfängt".
Wenn ich nun den Taster1 drücke geht auch die LED 1 an, und beim
Wiederholten drücken wieder aus. Bei Taster2 geht natürlich die LED 2
ein und aus.
Beim Taster3 hört man nur ein kurzes Knacken aus dem Lautsprecher.
Nach ca 4 Minuten aber, benimmt sich der µC bei einem Tastendruck so,
wie wenn diverse Taster gedrückt würden. Die Leds gehen beide aus,
obwohl nur ein Taster gedrückt wurde, Der Lautsprecher knackt bei Taster
1, und ähnliches. An was könnte das liegen? Dies ist bei 2verschiedenen
ATMegas so. Ich hab bis jetzt beide ausprobiert.
Danke schonmal für die hoffentlich vielen Antworten!
Hi
>Nach dem Schreiben breche ich bei der Verifizierung ab, da das laut>Internet nicht nötig ist und ca. 2h dauert.
Dann hast du das falsche Equipment.
>An was könnte das liegen?
Programmfehler.
>Dies ist bei 2verschiedenen ATMegas so.
Warum sollten beide nicht das gleiche tun? Auch wenn es falsch ist
(siehe oben).
Aber mal im Ernst: Woher soll hier jemand wissen, was du da und womit du
es programmiert hast?
MfG Spess
Hi
Auch ich arbeite mit dem Teil von Pollin. In der Regel sind die Fehler
bisher immer vor dem PC gewesen. Also, kontrollier mal, ob du z.B. den
Stack initialisiert hast. Ob du Unterprogramme, die mit Ret enden
sollten eventuell mit RJMP aufrufst, oder RETI bei Interrupts nicht
benutzt. Beliebt sind auch falsche Anwendung von LD- Befehlen. POP's
sind keine Aufforderung zu Schandtaten, sondern zwingend notwendig nach
PUSH und daas in der richtigen Reihenfolge. ( First in, last out) Das
sind so Fehler, die mir auf Anhieb einfallen. Aber benutz doch mein
OpenEye, um zu verstehen, was dein Controller so anstellt. Dazu
braucht's nur eine kleine UART-Routine, um den Variablenbereich in
Richtung PC zu senden. Wie's gemacht wird, sollte alles beschrieben
sein. Bisher hab ich keine Rückfragen erhalten, so das ich davon ausgeh,
das es sich problemlos in Projekte integrieren ließ. Such einfach mal
danach.
Gruß oldmax
Hallo,
@Martin Vogel (oldmax): er flasht ein fertigs .hex zum Test, so wie ich
ihne verstehe.
Gehen wir davon aus, das ist auch ok.
Auf die Programmierweise wurde schon hingewiesen, gerade bei ersten
versuchen mit prinzipiell noch unbekannter Hard- und Software würde ich
nie auf ein Verify verzichten...
Alten PC mit echter Schnittstelle beschaffen oder echten USB-Programmer
kaufen/bauen.
Was steht zum Testprogramm zu den Fusebits? Sind da Leitungen von PortC
benutzt?
bei Mega16 fällt mir dann immer JTAG ein...
Gruß aus Berlin
Michael
Hi
@Michael
Nun ja, das Programm hört sich wie ein mitgeliefertes Testprogramm an.
Und das muß nicht unbedingt ok sein. Außerdem ist da die Frage, ist auch
der richtige µC eingebunden?
Die Fehlerbeschreibung klingt wie ein überlaufener Stack. (PUSH-POP oder
RCall und RET)
Natürlich kann man nicht allzuviel sagen, da das Programm unbekannt ist.
Auch wenn's vielleicht überheblich klingt, aber ich geh nicht davon aus,
das "KamikazeProgrammierer" voll den Durchblick hat. Normalerweise hat
das Pollinboard einen Reset- Taster und ein Abklemmen von der
Versorgungsspannung ist nicht nötig. Wär ja auch Blödsinn, weil da so
viele Impulse kommen, die Spannung auf der Platine auch nicht gleich von
0 auf hundert geht und der Prozessor damit nicht unbedingt sauber die
Startsequenz durchläuft. Nach außen mag es gut aussehen.....
Gruß oldmax
Hi!
Oldmax hat es gut bescchrieben. Ich blick' da noch nicht so richtig
durch, aber ich bin mir sicher, das wird schon noch ;-)
Einen PC mit serieller Schnittstelle hab ich hier, aber leider mit
Linux. Da ist alles ein bisschen Komplizierter bzw. ungewohnter.
Ich werde das heute noch ausprobieren.
Ich dachte, das abklemmen der Versorgungsspannung wäre die beste
Möglichkeit des Resettens. Aber auch beim Drücken des Reset Tasters
ändert sich nichts an der Reaktion des Controllers.
@spess53: Ich hab das darum mit 2 ATMega16 ausprobiert, da es doch sein
könnte, dass einer vllt. ein bisschen "Dumm" ist?
Das Testtool.hex ist laut Anleitung für einen ATMega16 ausgelegt, sollte
ja eigentlich alles gut sein, oder?
>Was steht zum Testprogramm zu den Fusebits? Sind da Leitungen von PortC>benutzt?
Die Fuses sind so gesetzt wie angegeben. Was PortC ist weiss ich noch
nicht.
Einen USB ISP Programmer zu bauen, wird das nächste sein, aber um sowas
zu bauen braucht man erstmal Hardware um einen ATMega8 Flashen zu
können, oder?
Grüße, Jaki
Hi
Also, wenn dein Reset-Taster keine Wirkung zeigt... dann ist entweder
der µC verfused oder das Board nicht sauber / richtg gelötet. Am besten,
du nimmst eine Lupe und kontrollierst mal die Lötungen. Ich hab beim
ersten mal auch vergessen, ein Pin vom Quarz zu verlöten. Erfolg, das
ich nach ein paar Tagen die Atmegas wieder aus dem Papierkorb geholt
hab, nachdem ich das bemerkt hab. Schau auch nach, das keine
Kurzschlüsse auf dem Board sind.
Gruß oldmax
Tipp: Wenn du einen PC hast mit PCI Schnittstelle kauf dir eine RS232 +
LPT Schnittstellenkarte, kostet 10€ und macht das Entwicklerleben viel
leichter.
Ein ordentlicher Programmer ist natürlich trotzdem eine Überlegung wert.
Hi!
Eine PCI Karte werde ich nicht kaufen, da es der Linux Rechn er für's
erste tun sollte und danach wollte ich mich an den Nachbau eines USB ISP
wagen.
Grüße, Jaki
Hi!
Ich bin's nochmal!
Das Board ist eigentlich recht sauber verlötet.
Ob der Reset Taster geht oder nicht, kann ich nicht sagen. Was soll denn
der µC machen, wenn der Reset gedrückt wird?
Verfust kann der Controller eigentlich nicht sein, da alles so
eingestellt wie in der Anleitung gezeigt.
Grüße, Jaki
KamikazeProgrammierer schrieb:
> Hi!
Du musst jetzt endlich anfangen Fakten zu schaffen
* das Board ist sauber verlötet
* das Programm ist fehlerfrei
* die Stromversorgung ist sauber
* Die Fusebits stehen richtig
-> einzig mögliche Schlussfolgerung:
Alles müsste korrekt funktionieren
Da dem aber nicht so ist, muss irgendeine der Voraussetzungen nicht
erfüllt sein.
Nur: Das kann von hier aus keiner beurteilen.
Damit du uns in die Lage versetzt, das zu beurteilen gibt es nur eine
Möglichkeit:
Aufhören uns zu erzählen, was deiner Meinung nach alles ok ist, sondern
einfach die nackten Tatsachen präsentieren
* Board abfotografieren oder einscannen und zeigen.
Dann kann sich jemand ansehen, ob eine Lötstelle ev. thermischen
Fehler haben kann
* Das Programm zeigen
Dann kann jemand das Programm auf mögliche Schwachstellen abklopfen
* Die Fusebits anzeigen lassen und einen Screenshot posten
Auch wenn der Verify beim Brennen 2 Stunden dauert, solltest du ihn
zumindest 1 mal durchlaufen lassen um zu sehen, ob das Programm richtig
gebrannt wurde. Mitlerweile hast du schon wesentlich mehr Zeit als diese
2 Stunden investiert ohne mit 100% Sicherheit zu wissen, ob das Brennen
des Programms geklappt hat. Deinem Rechner ist in der Nacht eh fad. Da
kann er ruhig auch 2 Stunden lang den µC verifizieren.
Hi!
Nach einem Programmieren mit Verify am USB=> Seriell Adapter kam die
Meldung "Write Failed".
Jetzt hab ich PonyProg auch auf dem Linux Rechner und auch mal da
progrmmiert. Dort ist das Programm in ca. 1-2 Sekunden inkl. Verify
drauf. Write OK!
Danach Resettet und ausprobiert. Wenn man die Tasten gaaanz langsam
drückt, also so immer 2sec pause nach jedem drücker, geht es ganz gut,
aber es macht auch nicht immer was es soll. Wenn man schneller drückt,
macht das Board echt was es will. Ausserdem hört man kein piepsen aus
dem Lautsprecher sondern nur ein knacken.
Das Baord ist ordnungsgemäs gelötet, das hat mir ein befreundeter
"lötprofi" versichert.
Programm:
Du weisst aber schon, das der Programmer auf dem Pollin-Board ein
"Bitbanger" ist der die Statusleitungen der RS232 missbraucht, um das
Protokoll zu simulieren?
Ich hab bis jetzt noch keinen USB-RS232-Wandelr gesehen, der mehr als
RxD und TxD rausgibt!
Damit kann es also nicht richtig klappen!
Mit meinem Pollin-Board (auch V2.0.1) dauert das Vergleichen bei einem
ATMega32 übrigens ca. 45 Sekunden.
Schau doch mal was die RS232 vom Board rausgibt! Es muss laut Programm
in einem Terminal-Programm "Atmel-Evaluation-Board" empfangen werden.
Die Einstellungen der seriellen Schnittstelle sind ja auch im Programm
beschrieben.
Bei den Fuses musst du beachten, das bei Ponyprog die Fuses genau
umgedreht gesetzt werden müssen! Also wenn du ein Fusebit auf 1 setzen
willst, musst du den Hacken rausnehmen! Wenn es 0 sein soll, muss ein
Hacken rein.
Gruss Stefan
Hi!
Die Fuses in PonyProg hab ich nach dem Screenshot aus dem PDF von Pollin
gesetzt. Die sollten also eigentlich passen, wenn sich bei PonyProg nix
geändert hat, das Pollin wahrscheinlich eine ältere Version verwendet
hat.
Am Hyperterminal kommt nix an, was mich inzwischen aber auch nicht mehr
wundert.
Ich glaub ich mach erstmal schluss mit dem µC Zeugs...
GRüße und danke für eure Hilfe!
Meines Wissens wurde das Board teilweise mit einem Summer OHNE
Elektronik ausgeliefert, ist zumindest hier im Forum gelegentlich zu
lesen.
Das würde zumindest das "nur knacken" erklären.
Gruß,
Christian
hi!
Hmm... Das mit dem Summer hab ich mir schon gedacht...
Nur was muss ich an den Tastern ändern, damit sie nach Masse schalten?
Könnt ihr mir das genau erklären, da ich bei den Pullup Widerständen
noch nicht so viel Ahnung hab...
Danke!
Hallo,
das Testtool ist vermutlich viel älter als die Boardrevision und dessen
Schaltung...
UART-Ausgabe sollte schon gehen, Bedingung ist natürlich, daß der AVR
per Fuses auch so gestzt ist, daß er mit 8MHz Quarz läuft, wie es das
Basic-Programm voraussetzt.
Naja, BasCom Demoversion nehmen und eben umprogrammieren oder was
raufspielen, was bei jemandem, der die gleiche Boardversion hat,
tatsächlich geht.
Und sinnvollen Programmieradpter besorgen oder alten Rechner mit echter
COM nehmen.
Gruß aus Berlin
Michael
Ach ja, Pollin schein beim MAX232 immer 10microF- Elkos zu nehmen. Im
Datenblatt des IC's sind aber bei allen Versionen 1micro verwendet!
Bei meinem Net-IO-Board ging der MAX232 erst nachdem ich die Elkos
getauscht hatte! Beim Evoluation-Boad habe ich dann gleich 1micro
eingebaut.
Die Taster sind für das Beispielpogramm schon richtig verschalten. Dort
wird ja nach 1 und nicht nach 0 abgefragt.
Gruss Stefan
Hallo KamikazeProgrammierer,
bei Testtool.bas seht $crystal = 8000000 und was hast du verbaut,
wahrscheinlich wenn es der org. Bausatz ist 16 Mhz.
Verwende mal den internen quarz siehe fuse einstellung
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
$crystal = 1000000
Sound geht nicht weil wie meine vorgänger richtig erkannt haben ein
lautsprecher verbaut wurde. Ändere das programm
Beep: 'Untermenü
"Beep"
Portd.7 = 1 'setzte den
Pin 7 von Port D auf high
Waitms 5 'Warte 500
ms
Portd.7 = 0 'setzt den
Pin 7 von Port D auf low
Sound Portd.7 , 1000 , 100
Return 'zurück zum
Hauptmenü
Auch rs232 kann nicht funktionieren füge hier $baud = 4800 ein
In der PONYPROG2000.INI kannst du verify ausschalten
VerifyAfterWrite=NO
Bei mir läuft das Programm auf einen atmega8 ohne probleme
nur nicht gleich aufgeben, weithin ein schönen WE
mfg
orfix
Hallo,
Erba57 Ba schrieb:
> Verwende mal den internen quarz siehe fuse einstellung> http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
Es gibt keinen internen Quarz, nur einen internen RC-Oszillator im AVR!
Gruß aus Berlin
Michael
> Hilft den KamikazeProgrammierer bestimmt weiter?
Ja, es hilft einem Anfänger sehr wohl weiter, wenn sachliche Fehler (die
Jedem mal passieren, auch mir) nicht unwidersprochen stehen bleiben.
Ein Anfänger hat schon genug mit dem normalen Stoff zu tun, da ist jeder
Fehler bzw. jede Unkorrektheit eine(r) zuviel.
...
Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
10
11
12
Main: 'Hauptprogramm
13
Do 'Anfang der Schleife
14
15
If Pind.2 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann...
16
17
Toggle Portd.5 '...setze Pin 5 von Port D von high auf low oder umgekehrt
18
Bitwait Pind.2 , Reset 'warte bis an Pin 2 von Port D wieder ein low level anliegt
19
20
End If 'Ende der Bedingung
21
If Pind.3 = 1 Then 'Wenn an Pin 3 von Port D ein high level anliegt, dann...
22
23
Toggle Portd.6 '...setze Pin 6 von Port D von high auf low oder umgekehrt
24
Bitwait Pind.3 , Reset 'warte bis an Pin 3 von Port D wieder ein low level anliegt
25
26
End If 'Ende der Bedingung
27
If Pind.4 = 1 Then 'Wenn an Pin 2 von Port D ein high level anliegt, dann...
28
29
Gosub Beep '...gehe zum Untermenü "Beep"
30
Gosub Textausgabe '...gehe zum Untermenü "Textausgabe"
31
Bitwait Pind.4 , Reset 'warte bis an Pin 4 von Port D wieder ein low level anliegt
32
33
End If 'Ende der Bendingung
34
35
Loop 'zum Anfang der Schleife
36
37
Beep: 'Untermenü "Beep"
38
39
Portd.7 = 1 'setzte den Pin 7 von Port D auf high
40
41
Waitms 5 'Warte 500ms
42
43
Portd.7 = 0 'setzt den Pin 7 von Port D auf low
44
45
Sound Portd.7 , 1000 , 100
46
Return 'zurück zum Hauptmenü
47
48
49
Return 'zurück zum Hauptmenü
50
51
Textausgabe: 'Untermenü "Textausgabe"
52
53
Print "Atmel-Evaluation-Board" 'Sende den Text in den Anführungszeichen über RS232 zum PC
54
55
Return
Kann ich nicht auch anstatt des internen oszillators den externen Quarz
nehmen? Dann müsste ich halt auch $crystal = 800000 von 800000 auf
1600000 ändern, oder?
Danke nochmal für die Hilfe.
@ KamikazeProgrammierer: Lesen kannst du schon, ja? Dein Programm ist
jedenfalls an mehreren Stellen fehlerhaft bzw kann verbessert werden, da
das jeder sieht, der die Anleitung des Pollinboards, von Bascom oder
deinen Quellcode gelesen hat, belasse ich es dabei...
@dude:
Entschuldigung. Ich wüsste nicht, was ich noch verbessern könnte. Es
wäre schon, wenn du mir das trotzdem kurz erklären könntest, da du
sicherlich mehr weisst als ich. Wenn du nicht willst, dann musst du auch
nicht.
Ich werde leider aber auch aus der Pollin Anleitung nicht schlau.
grüße, Jaki
"Waitms 5" wartet keinesfalls 500ms, sondern 5, der Buzzer "buzzt"
selber, faengt also an zu piepen bei "PORTD.7 = 1", das Sound duerfe mit
ihm garnicht funktionieren, deine Variablen nutzt du garnicht, die
If-Schleifen kannst du einfach so schreiben:
1
If Pind.2 = 1 Then
2
Portd.5 = 1
3
End If
Die Sub's brauchst du nicht, die 16mhz sind 8mhz zuviel, denn auf dem
Board sind nur 8mhz Quarze und intern geht auch nicht mehr...
Ich kann dir den Code gleich korrigieren, wenn ich vom einkaufen wieder
da bin.
Hi!
>Ich kann dir den Code gleich korrigieren, wenn ich vom einkaufen wieder>da bin.
Super!
>Die Sub's brauchst du nicht, die 16mhz sind 8mhz zuviel, denn auf dem>Board sind nur 8mhz Quarze und intern geht auch nicht mehr...
Meiner Meinung nach sind auf dem Board für den ATMega16 Sockel 16mhz
Quarze.
Grüße, Jaki
Sollte in etwa machen, was du machen wolltest, ich kanns ausserdem
gerade nicht testen ;) Auf meinem Board sind 8MHZ-Quarze, sollten bei
dir andere drauf sein, wird der PC nur Muell empfangen bei Print, siehst
du dann ja...
Bei Fragen frag...
@Stefan M. (celmascant)
>Ich hab bis jetzt noch keinen USB-RS232-Wandelr gesehen, der mehr als>RxD und TxD rausgibt!
Bis jetzt waren alle 5 Stück der Billigadapter voll belegt.
Haben aber teilweise nur 0V-(+5V) Pegel.
>Ach ja, Pollin schein beim MAX232 immer 10microF- Elkos zu nehmen. Im>Datenblatt des IC's sind aber bei allen Versionen 1micro verwendet!
jo sind 10u
Christian Erker (Gast)
>Meines Wissens wurde das Board teilweise mit einem Summer OHNE>Elektronik ausgeliefert, ist zumindest hier im Forum gelegentlich zu>lesen.
30 Ohm
@Sachich Nich (dude)
>OT: Mein verkacktes Pollinboard hat sich heute verabschiedet, scheiss>Ding
Was soll schon kaputt gehen bei diesen Teil;-)
>Die Sub's brauchst du nicht, die 16mhz sind 8mhz zuviel, denn auf dem>Board sind nur 8mhz Quarze und intern geht auch nicht mehr...
Bei mir 1 8MHz und 2 16MHz
mal sehen wenn ich es testen kann.
Okay, vom Pollinboard gibt es wohl ziemlich viele verschiedene Versionen
:D
Ich weiss nicht was kaputt gegangen ist, von einem Mal aufs andere
konnte ich nicht mehr flashen, Serielle Schnittstelle funktioniert in
anderen Anwendungen noch, verschiedene Controller und *.hex getestet,
Transistor getauscht, nichts.
Ist mir auch egal was es ist, das Ding ist ersetzt...
Hi!
ich hab nun das Programm, das dude oben gepostet hat compiliert und
geflasht. Natürlich mit 16000000 als Quarzwert.
Beim Taster 1 geht LED 1 an.
Beim Taster 2 geht LED 2 an.
Soweit alles ok.
Bei Taster 3 passiert nichts.
Beim Resetten knackt der Piezo wenn davor TAster 3 gedrückt wurde.
grüße, Jaki
hallo KamikazeProgrammierer,
mit den dude programm kannst du die led einschalten aber leider nicht
mehr aus, (außer reset)
bei taster 3 zieht die spule des lautsprecher an, das wars dann auch.
probier doch mal dein ursprüngliches programm, müsste besser
funktionieren.
bei mit funktionierts auch ohne quarz, fusebits
füg mal Sound Portd.7 , 1000 , 100 ein
mfg
orfix
Hi!
Ich hab jetzt mal ein bisschen rumprobiert.
Funktioniert auch alles mehr oder weniger ;-)
jetzt hab ich nochmal mein erstes eigenes Programm geschrieben, oder
eher vom Testtool abgeändert.
1
$regfile = "m16def.dat" 'definieren des verwendeten Chips
2
3
$crystal = 16000000 'definieren des verwendeten externen Quarz (8MHz)
4
5
Dim A As Byte 'dimensionieren der verwendeten Variablen
Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
10
11
Portd.5 = 1
12
Portd.6 = 0
13
14
Main: 'Hauptprogramm
15
Do 'Anfang der Schleife
16
17
Waitms 1000
18
Toggle Portd.5 '...setze Pin 5 von Port D von high auf low oder umgekehrt
19
Toggle Portd.6 '...setze Pin 6 von Port D von high auf low oder umgekehrt
20
21
22
Loop 'zum Anfang der Schleife
Das funktioniert super!
könntet ihr mir nich sagen, für was
Dim A As Byte
Dim B As Byte
ist? Ist das eine Variablendeklaration? Für was wird die im Testprogramm
benötigt?
Grüße, Jaki
in mein Programm einzufuegen bzw. meinen Teil mit Portd.7 zu ersetzen.
Wenn du die Verwendung des Originalprogramms empfiehlst (ich will mich
nicht aufspielen), ist es wohl nicht weit her mit deinen
Programmierkuensten...
@ KamikazeProgrammierer: rtfm!
http://rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht
Hi, ich bins wieder!
ich hab nochmal ein bisschen probiert, und es wird schon.
jetzt wollte ich aber die beiden LEDs abwechselnd blinken lassen, was
auch schon gut klappt. Die Geschwindigkeit aber über die beiden Taster
zu verändern geht noch ncith, da Bascom beim prüfen der Syntax Fehler
meldet.
Ich habe keine Fehler mehr gefunden, aber bascom meckert bei der IF
Bedingung rum und benötigt ein "loop" mehr.
Code:
1
$regfile = "m16def.dat" 'definieren des verwendeten Chips
2
3
$crystal = 16000000 'definieren des verwendeten externen Quarz (8MHz)
4
5
Dim Zeit As Integer
6
Zeit = 500 'dimensionieren der verwendeten Variablen
$regfile = "m16def.dat" 'definieren
des verwendeten Chips
$crystal = 16000000 'definieren
des verwendeten externen Quarz (8MHz)
Dim Zeit As Integer
Zeit = 500
'dimensionieren der verwendeten Variablen
Ddrd = &B11100000 'definieren
der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000 'definieren
der einzelnen Pins an einem Port ( 0= low level; 1= high level)
Portd.5 = 1
Portd.6 = 0
'Hauptprogramm
Do 'Anfang der
Schleife
If Pind.2 = 1 Then Decr Zeit
If Pind.3 = 1 Then Incr Zeit
Loop
@ KamikazeProgrammierer: Du solltest mal lesen lernen! In der
Bascom-Hilfe ist eindeutig die Syntax beschrieben fuer ein- und
mehrzeilige If-Abfragen, du hast keinen Schimmer, was do loop oder xyz:
return machen usw...
Hi!
Danke für's korrgigieren!
Das "sinnlose" Else hab ioch da hingesetzt, weil ich dachte, dass man da
noch ein else braucht. Da er da aber nichts tun soll, habich nichts
dahintergeschrieben.
@dude: Doch, ich weiss, was do loop bedeutet. ein bisschen habe ich
nämlich schon gelernt!
grüße!
KamikazeProgrammierer schrieb:
> @dude: Doch, ich weiss, was do loop bedeutet. ein bisschen habe ich> nämlich schon gelernt!
Nein, dann wuerdest du weder nach den damit zusammenhaengenden Fehlern
fragen noch main: davor setzen.
Portd = &B00000000 'definierender einzelnen Pins an einem Port ( 0= low level; 1= high level)
10
11
Portd.5 = 1
12
Portd.6 = 0
13
14
'Hauptprogramm
15
Do 'Anfang derSchleife
16
17
If Pind.2 = 1 Then Decr Zeit
18
19
If Pind.3 = 1 Then Incr Zeit
20
21
Waitms Zeit
22
Toggle Portd.5
23
Toggle Portd.6
24
25
26
27
Loop
wenn ich die Taster drücke, ändert sich nichts. Wenn ich die Taster
gedrückt halte, bleibt das Blinken Stehen und nichts ändert sich.
Verbesserungen?
Grüße.
(ohne den ganzen Thread komplett gelesen zu haben)
Bitte prüfe doch, ob immer noch CLKOPT gesetzt ist!
Fusebit CLKOPT muß beim Pollin-Board für die "großen Atmegas" in der
Regel genau umgekehrt gesetzt werden, wie in der Anleitung.
D.h. AUS statt AN (bei Ponyprog).
Und zwar immer dann, wenn die Taktfrequenz größer 8 Mhz ist.
Beim Pollinboard 2.01 gilt das für Atmega8, Atmega 16 und alles sonst im
"großen" und "mittleren" Sockel.
Nur für die kleinen Attinys ist ein 8 Mhz Quarz vorgesehen ( Board
Version 2.01 )
Früher waren womöglich überall 8 Mhz bestückt (siehe PDF und
Beispiele....)
=> jetzt im Wiki nachgetragen Pollin ATMEL Evaluations-Board
Portd = &B11111111 'PullUp-Widerstände in PortD aktivieren
10
11
Portd.5 = 1
12
Portd.6 = 0
13
14
'Hauptprogramm
15
Do 'Anfang derSchleife
16
17
'Weil die PullUps im PortD aktiv sind, müssen wir jetzt nach LOW prüfen.
18
If Pind.2 = 0 Then Decr Zeit
19
20
If Pind.3 = 0 Then Incr Zeit
21
22
Waitms Zeit
23
Toggle Portd.5
24
Toggle Portd.6
25
26
loop
Allerdings musst du dann die Taster nach Masse beschalten. Diese
Inputmethode hat bei mir immer geklappt. Wenn du noch die Zeit dafür
hast, hänge noch einen Widerstand á 1K ohm an den Pin nach Vcc, das gibt
einen zusätzlichen PullUp, der den Controller unempfindlicher gegen
Funkstörungen wie z.B. einen Lichtschalter in der Nähe macht.
NrDesign