Hallo ich bin nun seit nen paar Tagen am basteln mit nem Mega8. Bis jetzt hat auch alles super hingehaun was ich machen wollte: Pwm,adc,led an und aus. Nur ich bekomme es nicht hin, dass dieses Ding auf einen simplen Taster reagiert. Hab schon alles versucht: taster zu GND und dem Portpin angeschlossen mit internem Pull up. dann mit externem Pullup.sogar mit pull down und an +5V hab ichs versucht. das komische ist, das der adc einwandfrei funktioniert. hab mir jetzt so weitergeholfen, dass ich den adc nach kleinen werten abfrage und damit dann sozusagen nen taster simuliere. Is aber nich so ganz das wahre. kann es sein, dass der eingangsport kaputt ist aber der adc noch funktioniert? bin schon alle ports durchgegangen. ohne erfolg. ach ja ich hab hier mal nen kleines testprogramm geschrieben: $crystal = 8000000 $regfile = "m8def.dat" Config Portd = Input Config Portb = Output Portb = 255 Do If Portd.4 = 0 Then Portb.1 = 0 Else Portb.1 = 1 ' Led leuchtet wenn pin an GND Loop wenn ich das programm starte leuchtet die Led dauerhaft. also er denkt, dass der pin auf low ist. obwohl saubere +5v anliegen. (direkt am pin gemessen) Ich weiß echt nicht mehr weiter. wär euch echt dankbar, wenn Ihr mir weiterhelfen könntet. ach ja mit software entprellen hab ichs auch versucht... funzt auch nich.
Config Portd = Input??????ß muesste es nicht heisen: Config Portd = DDR(A,B..) bzw Portd?
"muesste es nicht heisen: Config Portd = DDR(A,B..)" keine ahnung davon hab ich nix gefunden in bascom. die besipielprogramme in bascom sind genauso geschrieben.
hey das funktioniert :) danke! warum funktioniert das nich mit port ?
lege ein Anfangs Pegel fest zum Bspl. so: Config Pinb.0 = Input Portd.0 = 1 --> H Config Pinb.0 = Input Portd.0 = 0 --> L sonst haste keine eindeutigen Anfangzustände. Warst das ?
@Max: Im Gegensatz zu vielen anderen Controllern sind bei den AVR-Controllern generell Eingangs und Ausgangsregister voneinander getrennt und werden über unterschiedliche Adressen angesprochen. PinB liest direkt vom Portpin, PortB schreibt und liest das Ausgangsregister. Egal was am Portpin passiert, PortB bekommt davon nichts mit. Gruss Jadeclaw.
Das Verwenden einer Hochsprache wie BASCOM erübrigt nicht das Lesen des Datenblattes des Controllers. Dort kannst du nachlesen, wie die jeweiligen Ports (und andere Hardwarekomponenten) aufgebaut sind, über welche Register man sie anspricht und wie sie funktionieren. ...
...? Es kommt auf den Syntax an und die ist bei der jeweiligen Prog. Sprache anders Hand zu haben. Allerdings bietet die Hilfe von Bascom da ausreichende Infos.
@Dirk: Ich denke mal, du hast mich angesprochen. Eben, die Syntax. Und die BASCOM-Hilfe. Da ich auf anderen Systemen (unter einem Betriebssystem!) viel mit BASIC hantiere ist mir BASIC ansich nicht fremd. Doch BASCOM geht mir mit seinen CONFIG-Anweisungen irgendwie zu weit. Man kann nicht mehr anhand des Datenblattes arbeiten. Da ist mir ASM doch lieber. Klar, zum "Rechnen" ist eine Hochsprache bequemer. Aber zum Programmieren hart an der Hardware ist mir ASM einfach einleuchtender. Da kann man nachvollziehen was man tut, da kann man das Timing kontrollieren usw. BASCOM tut aber alles, den Benutzer zu verdummen. Ein paar vorgefertigte Bibliotheken suggerieren schnellen Erfolg, wird das Programm etwas komplexer oder einfach nur zeitkritischer, dann geht nix mehr. BASCOM verführt auch dazu, unrationell zu programmieren (man sieht ja gelegentlich die Hilferufe von Usern mit übertaktetem Mega128 und BASCOM). Ich halte es daher besonders für den Anfänger für ungeeignet, in die AVR-Programmierung einzusteigen bzw. die Architektur des AVRs verstehen zu lernen. ...
Gut, auch unsere C Freunde haben die Schwierigkeiten auch. Assembler ist nicht gerade was für Anfänger. Also habe auch mit Bascom angefangen und schnelle Ergebnisse erzielen können. Das Problem ist die Dokumentaion der Hilfe(Note 4-5). ASM kann mach mit Bascom schreiben. Wenn er mit einer einfachen Config Zeile Probleme hat und mit einer IF THEN ELSE nicht klar kommt wird er/sie mit Assembler mehr Schwierigkeiten haben. Ich gebe dir recht wenn man Zeitkritisches hat ist Asm besser. 90 % der Programme auch in Basic, oder C, schreiben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.