funktioniert das auf diese weise?

Gast #74947
Lesenswert?
• ▲
▼
Hallo,
ich beschäftige mich jetzt seit ein paar Wochen mit Elektronik und habe
mir einen AT90S4433 zugelegt und da der Programmer von/für SP12 am
einfachsten zu löten war, will ich jetzt damit ein kleines
Erfolgserlebnis erreichen. Vielleicht kann mir da jemand helfen.

Also die Verbindung zwischen SP12.exe und der Hardware steht, ich
bekomme eine positive

Rückmeldung und es wird angezeigt dass der 4433 erkannt wurde.
So sieht meine Hardware aus (das erste bild - ...ich weiss, sieht
primitiv aus):
http://www.xs4all.nl/~sbolt/e-spider_prog.html

So weit so gut, aber was nun?

Ich wollte erstmal mit einem Schalter eine LED mit dem µC ansteuern.
folgendes habe ich mir ausgedacht, wie mit kanonen auf spatzen
schiessen, aber egal:


#include <stdio.h>  /* welche bibliothek hab ich denn */
                    /* bzw.  brauch ich denn? */

main()
{
   PORTB1 = Eingang; /* wie muss ich da den Eingang deklarieren?*/
                     /* welcher Port als Eingang? Port B, C, D?     */
   PORTB2 = Ausgang; /* egal welcher Port Eingang oder Ausgang ist? */

if (Eingang = Low/0)
      Ausgang = Low/O;

else      Ausgang = High/1;  /* die LED soll leuchten */

}

dann kompilieren und die .bin in eine .hex wandeln - aber wie!?
dann mit SP12 uploaden. so habe ich mir das vorgestellt.


wäre toll, wenn mir jemand helfen könnte, wie das Programm aussehen
muss, damit es auch funktioniert und an welchem Port beim AT90S4433 der
Eingang bzw. Schalter und an welchem Port die LED sein soll.


Ausserdem würde ich mich über links zum Thema "C für AVR-µC´s"
freuen!

danke schon mal im voraus!
ist jetzt schon spät, gute nacht
Gast #74949
Lesenswert?
• ▲
▼
schon besser oder?


#include <io.h>

main()
{
    outp(0xff, DDRB);      /* use PortB for output (LEDs) */
    outp(0x00, DDRD);      /* use PortD for input (switches) */

if (DDRD = 0)
        DDRB = 0;
    else
        DDRB = 1;     /* turn LEDs on */
}
Gast #74952
Lesenswert?
• ▲
▼
danke!

Ich hab vor 2 Tagen den µC AT90LS4433 bekommen und jetzt hab ich mir
schon einen winzigen programmer gebaut und die ersten LEDs leuchten
jetzt auch schon.
So macht das Spass, allerdings mag ich Assembler nicht sonderlich und
abschreiben ist auch nicht mein Ding..
hab trotzdem mal den I/O-Teil vom Tutorial in Assembler programmiert:

.include "4433def.inc"
         ldi r16, 0xFF
         out DDRB, r16
         ldi r16, 0b11111000
         out PORTB, r16
ende:    rjmp ende

allerdings hab ich Null Ahnung von der Assembler Syntax und will sie
eigentlich auch gar nicht lernen, da mir C besser gefällt und ich auch
schon etwas kann.

Wie ändere ich mein kleines Programm, damit daraus ein "Lauflicht
wird?

so nebenbei:
im Tutorial steht im I/O-Teil, dass die 4433def.inc fehlerhaft ist und
es wird auf die richtige Datei verlinkt...
die hat bei mir auch einen Fehler produziert (bei Zeile 164 glaub ich)
- ich hab die Zeile gelöscht und es ging - was ich da gelöscht habe
will ich vorerst gar nicht wissen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren