Hi, ich bin Anfänger was µC angeht und versuche gerade mit grundlegenden Ausgabeversuchen an den Ports diese zu verstehen. Mit folgendem Code müssten ja eigentlich alle LEDs an PortB blinken, tun diese aber nicht. Es blinkt nur portb.0 und portb.4 Was mach ich da falsch bzw. was könnte das sein? Hier der Code: $regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output Do Portb = $b00000000 Wait 1 Portb = $b11111111 Wait 1 Loop End Gruß, Benny.
Der Code sieht ganz gut aus. Vieleicht Kalte Lötstellen oder LEDs falschherum angeschlossen. Mess doch mal den Pegel and den Pins.
Hi, ok, hab glaub die Richtung des Fehler herausgefunden. Kann es sein das man den µC jedes mal vorher löschen muss bevor man den neu proggt? Ich dachte Bascom macht das automatisch. Hab jetzt ein wenig herumgespielt und bemerkt das er anscheinend nicht alles neu beschreibt, sondern nur das was neu programmiert wurde. Irgendwie blicke ich das nicht, vorher also immer löschen. Aber wo sage ich das dem Bascom? Gruß, Benny.
Hi nochmal, also ich blicks jetzt gar nicht mehr. Hab eben mit AVR-Studio extra den Chip vorher gelöscht. Bei folgendem Code blinken jetzt die LEDs an Portb 0 und 4. $regfile = "attiny2313.dat" $crystal = 1000000 Ddrb = $b11111111 Do Portb.0 = 0 Portb.1 = 0 Portb.2 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 Portb.6 = 0 Portb.7 = 0 Wait 1 Portb.0 = 1 Portb.1 = 1 Portb.2 = 1 Portb.3 = 1 Portb.4 = 1 Portb.5 = 1 Portb.6 = 1 Portb.7 = 1 Wait 1 Loop End Gruß, Benny.
Mal einen anderen versucht? Kann ja auch mal einer hin sein. Vorausgesetzt es gibt keinen Verdrahtungsfehler.
Was los? Hast du kein Multimeter? Dann wirds Zeit ein zu kaufen. Nimm doch mal den P. raus und verbinde die pins 12-19 der Fassung mit mit pin 20 leuchten alle LED dann ists der P. wenn nicht ists auch klar.
>DDRB = $b11111111
Ich weiß nicht, aber müßte das nicht DDRB = 0b11111111 heißen?
Hi Leute, ups, hatte ich vergessen zu sagen. Ich habe ja das STK500 Board. Hab das schon abgesteckt und die Bahnen durchgepiepst, alles ok. Dann habe ich den µC wieder eingesteckt und die Spannungen gemessen. Also die LEDs zeigen schon das an was der IC ausgibt, das passt soweit. Allerdings gibt der IC nicht das aus was im Programm steht. Eigentlich sollte der doch den kompletten PortB blinken lassen. Aber es blinken nur die LEDs an PortB.0 und PortB.4, das konnte ich dann durch messen auch bestätigen. Allerdings bringt mich das jetzt auch nicht weiter. Kann es sein das der µC nen Schuss hat weil ich nicht ESD geschützt war? Ich habe zwar ESD Schutz in meiner Werkstatt, habe das STK500 aber in meinem Büro wegen dem Notebook aufgebaut. Und ist das STK500 selbst auch empfindlich? @skua Was meinst Du mit "P."? Den Prozzi? Ok, werd ich machen. Mal sehen was sich dann ergibt. Hab ja zum Glück noch ein paar hundert von den attinys da. @travelrec Gute Frage, ich habe das "DDRB = $b11111111" von der Roland Walter Homepage. Und das hat auch bisher gut geklappt. Aber mal anders herum gefragt ist es mir nicht klar was das "$" oder die "0" vor dem "B" zu bedeuten hat. Gruß, Benny.
Es muß ein "UND"-Zeichen sein: & Zum Bleistift: Portb =&B00000000 MfG Paul
Hi, Mist, das wäre ja peinlich wenn das der Fehler wäre. Komisch nur das mir Bascom keinen Fehler gemeldet hat. Werd das aber nachher auf jeden Fall testen und das "$" gegen ein "&" austauschen. Gruß, Benny.
Benjamin Klyeisen wrote: > Aber mal anders herum > gefragt ist es mir nicht klar was das "$" oder die "0" vor dem "B" zu > bedeuten hat. Das ist natürlich keine geeignete Voraussetzung, damit ein Programm funktioniert. Man sollte seine Programmiersprache schon beherrschen (und nicht umgekehrt). Bzw. ganz einfach mal in der Hilfe nachschlagen. Bisher scheint unter den Antwortern auch kein Bascom-Crack zu sein (steht ja auch nicht im Topic, daß es um Bascom geht). Ich könnte Dir auch nur zeigen, wie es in C oder Assembler geht. Du könntest ja mal das Assembler-Listing von Deinem Bascom posten. Peter
Wenn Du ein $ Zeichen benutzt, denkt der Compiler, daß alles was danach kommt in ASM gemeint ist. Syntaktisch ist das kein Fehler, aber logisch. MfG Paul
@ Peter Hi, ja, ich sagte ja schon bereits das ich blutiger Anfänger bin. Das mit dem $ war jetzt schon blöd. Aber das & sieht bei mir auf dem Bildschirm irgendwie abgeschnitten aus und ist schlecht als dieses erkennbar. Naja, auf jeden Fall werde ich das jetzt nochmals testen und hoffe dann das das der Fehler war, oder einfach nur der µC hin ist und ein Austausch geholfen hat. Ich werd das dann hier posten. Ich hab ja noch nicht viel mit Bascom gemacht, aber Deine Bulletproof Tasterentprellung hab ich mir gleich mal als Bascom Code kopiert. Den werd ich bestimmt noch irgendwann gebrauchen :-) Allerdings muss ich das vorher alles erst mal verstehen. Wie sieht das hier allgemein aus, gibt es hier ein paar Bascom-Profis? Gruß, Benny.
Bin zwar kein BASCOM crack aber das wird so sein. Das &B ist die Einleitung einer Binärzahl. Mit $ leitet man Hexzahlen ein. $B11111111 = &B101100010001000100010001000100010001 Und jetzt schlägt noch der BASCOM zu. Dim A as Byte A = $B11111111 ergibt fehlermeldung DDRB = $B11111111 ergibt keine fehlermeldung obwohl DDRB auch Byte ist merkt BASCOM aber nicht sonder nimmt einfach das untere Byte. Wenn man Dim A as Long A = $B11111111 nimmt wird A zu 00010001000100010001000100010001 Eigentlich mußte der compiler hier auch meckern aber einfach wegwerfen ist einfacher. Und keine Angst! Du bist nicht der einzige Blinde hier. Man sieht halt was man sehen will.
Hi, ok, es hat sich erledigt. Es war tatsächlich das "$" das Problem. ls ich ein "&" daraus gemacht habe ging es. Och menno, immer müssen die blöden Computer recht haben und der User ist der Dumme ;-) Aber danke an alle! Gruß, Benny.
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.