ich habe das problem, dass bei mehreren atmega16 bei jedem port die pins 3-5 nicht reagieren. ich habe schon 2 atmegas probiert, kann doch eigendlich kein zufall sein. kennt jemand das problem?
mfg roboman
Druckbare Version
ich habe das problem, dass bei mehreren atmega16 bei jedem port die pins 3-5 nicht reagieren. ich habe schon 2 atmegas probiert, kann doch eigendlich kein zufall sein. kennt jemand das problem?
mfg roboman
ein wenig code, beschaltungspläne und genauere testbeschreibung wären ganz angenehm .. meine glaskugel hab ich letztens vor lauter frust zerdeppert ;)
ok, hier der code, kann nicht viel falsch sein, oder:
die beschaltund is für einen LEDwürfel, also spannungdbegrenzung, transisturen und ein max232.Code:$regfile = "m16def.dat"
$crystal = 16000000
Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output
Config Timer1 = Timer , Prescale = 1024
Enable Timer1
On Timer1 Timer1_isr
Enable Interrupts
Timer1 = 75
Porta = 11111111
Portb = 11111111
Portc = 11111111
Portd = 11111111
Do
Loop
Timer1_isr:
Timer1 = 75
Return
End
mfg roboman
Das ist aber ein ganz schön hoher Wert, den du an deine Ports schickst.
Deine 8 Portpins können ja höchstens den Wert 255 haben.
Wenn du die 255 jedoch binär hinschreibst, dann solltest du das auch richtig machen!
Und falls am PortC trotzdem was nicht geht, mal nach der JTAG-Fuse schauen, und deaktivieren.
Dez: 11111111 = Hex: A98AC7, davon wird das unterste Byte an den Port gesendet: C7 das sieht Binär so aus: 11000111
Ich hätte nicht gedacht, dass der Compiler das zulässt.
Eine Byte Variable kann man jedenfalls nicht auf so einen Wert setzen.
Gruß
Rolf
Er möchte bestimmt das ganze Binär setzen. Er hat bloß den Binär-Präfix vergessen.
Du solltest es vielleicht so probieren @Roboman:
Weil Du dem Compiler ja erst sagen musst, dass Du die Zahl binär angibst. Wenn Du das weglässt, dann nimmt er an, die Zahl ist Dezimal, und es folgt das Verhalten, was linux_80 beschrieben hat.Code:Porta = &B11111111
Portb = &B11111111
Portc = &B11111111
Portd = &B11111111
ok, danke, hab dann den binär-präfix vergessen.
thx@all
mfg roboman