PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega16 pin 3-5 gehen nicht



Roboman93
25.11.2008, 21:19
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

Ceos
25.11.2008, 21:30
ein wenig code, beschaltungspläne und genauere testbeschreibung wären ganz angenehm .. meine glaskugel hab ich letztens vor lauter frust zerdeppert ;)

Roboman93
25.11.2008, 21:50
ok, hier der code, kann nicht viel falsch sein, oder:

$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

die beschaltund is für einen LEDwürfel, also spannungdbegrenzung, transisturen und ein max232.


mfg roboman

repi64
25.11.2008, 22:28
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!

linux_80
25.11.2008, 23:13
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

for_ro
25.11.2008, 23:37
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

thewulf00
26.11.2008, 08:39
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:

Porta = &B11111111
Portb = &B11111111
Portc = &B11111111
Portd = &B11111111

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.

Roboman93
26.11.2008, 16:55
ok, danke, hab dann den binär-präfix vergessen.

thx@all

mfg roboman