ein wenig code, beschaltungspläne und genauere testbeschreibung wären ganz angenehm .. meine glaskugel hab ich letztens vor lauter frust zerdeppert
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
...and always remember...
...AVR RULES...
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
...and always remember...
...AVR RULES...
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!
Gruß RePi!
*** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
*** (Albert Einstein) ***
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
...and always remember...
...AVR RULES...
Lesezeichen