Forum: Compiler & IDEs ATmega32 und PORTC


von Jürgen S. (jsachs)


Lesenswert?

Hallo,

ich versuche verzweifelt den PORTC des atmega32 zu verwenden.
In der Zwischenzeit verwende ich folgendes Minimalprogramm zum Test:
1
#include <avr/io.h>
2
3
#define nop() __asm ("nop;")
4
5
void Delay(void)
6
{
7
  for (uint16_t cnt2 = 0 ; cnt2 < 0xFFFF ; cnt2++) nop();
8
}
9
10
int main(void)
11
{
12
  DDRC = 0xFF;
13
  while(1)
14
  {
15
    PORTC = 0xFF;
16
    Delay();
17
    PORTC = 0x00;
18
    Delay();
19
  };
20
}

Aber die Pins haben meist statische Pegel, egal was ich mache.
PC0 = T, PC1 = T, PC2 = 1, PC3 = 1 , PC4 = 0, PC5 = 0, PC6 = T, PC7 = T
"T" Bedeutet einen Takt, der meinem obigen Programm entsprechen dürfte.
Da ich sonst keine Register setze, sollten es doch normale Portpins 
sein, so verstehe ich zumindest das Datenblatt. Alle anderen Pins sind 
OK soweit.

Jemand ne schnelle Idee ?

Danke
Juergen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Guck dir mal die alternative Portbelegung an...

von Jürgen S. (jsachs)


Lesenswert?

Argh,

wieso ist den by default das JTAG Aktiv ????
Hat sich erst mal erledigt.

Gruss
Juergen

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Da ist JTAG noch aktiviert, deswegen können die Bits nicht benutzt 
werden.

Also erst mit Ponyprog die Fuse "JTAGEN" abschalten.

Siehe auch 
http://www.mikrocontroller.net/articles/AVR_Checkliste#Fuses_richtig_gesetzt.3F

Danach hatte ich auch mal 5 Stunden gesucht :-((

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> wieso ist den by default das JTAG Aktiv?

Weil es eine der möglichen Programmierschnittstellen ist.  Du kannst
mit JTAG programmieren, ohne einen ISP-Adapter zu besitzen.

Kannste entweder permanent per Fuse abstellen oder zur Laufzeit per
JTD.

von Jürgen S. (jsachs)


Lesenswert?

Danke für die Antworten

Das klinkt ja alle Logisch, nur steht nirgends das das per Default an 
ist.
Leider bin ich erst zu spät darauf gekommen einfach die Fuses auszulesen 
:-(

Gruss
Juergen

von Rolf Magnus (Gast)


Lesenswert?

Die Default-Einstellungen der Fuses stehen auch im Datenblatt.

von Werner B. (Gast)


Lesenswert?

Da gibt's doch ein Buch von Michael Ende?

... ach ja, "Die unendliche Geschichte".

Sollte eigentlich "JTag und der PORTC" heißen, aber als Kontrast zu 
seinem Namen wählte er den endlosen Titel.

;-)  Werner

P.S.
Hat einer mitgezählt wer den Rekord hält?

  ATmega128 mit der M103 Fuse oder ATmega16/32 mit JTag Fuse?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Werner B. wrote:

> Hat einer mitgezählt wer den Rekord hält?
>
>   ATmega128 mit der M103 Fuse oder ATmega16/32 mit JTag Fuse?

Ach was.  Das hier:

http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_fuses

hab' ich geschrieben, nachdem ich einen Abend lang auf einem
ATmega128 gesucht habe, warum mein Port F nicht richtig
funktioniert.  M103C war ja offensichtlich...

von Jürgen S. (jsachs)


Lesenswert?

Naja, dann kann ich nur hoffen das bei meinem Display Problem (Siehe 
anderes Posting "LCD und mega32") Fuse XYZ oder Fuse 0815 noch zusetzen 
ist :-)
Da bin ich echt am Verzweifeln.

Alles in Allem sind das die Fehler die man Theoretisch nie vergisst ;-)

Gruss
Juergen

von Peter D. (peda)


Lesenswert?

Dann gibts ja auch noch die Leute, die völlig unverständlicher Weise 
annehmen, die SPI-Programmierung des ATMega128 ginge über die SPI-Pins.


Peter

von Andreas Paulin (Gast)


Lesenswert?

Also, ich hab mir an PICs ja auch schon die Zähne ausgebissen, weil 
irgendwelche Ports "analog by default" sind, und die Fuses meines ersten 
AVR AT90CAN128 haben mich auch ins Schleudern gebracht, aber.......

"M103C" ist der Hammer. Habs mir gerade mal angesehen gg

von Falk (Gast)


Lesenswert?

@Peter Dannegger

>Dann gibts ja auch noch die Leute, die völlig unverständlicher Weise
>annehmen, die SPI-Programmierung des ATMega128 ginge über die SPI-Pins.

Naja, die SPI Programmierung geht schon über die SPI-Pins. Meistens 
wollen die Leute aber ISP programmieren ;-)

MfG
Falk



von Stefan (Gast)


Lesenswert?

Und oft braucht man PSI Kräfte, um das rauszubekommen.

von Peter D. (peda)


Lesenswert?

Falk wrote:
> @Peter Dannegger
>
>>Dann gibts ja auch noch die Leute, die völlig unverständlicher Weise
>>annehmen, die SPI-Programmierung des ATMega128 ginge über die SPI-Pins.
>
> Naja, die SPI Programmierung geht schon über die SPI-Pins. Meistens
> wollen die Leute aber ISP programmieren ;-)

Im Datenblatt steht aber auch "SPI Serial Programming".

ISP heißt In-System-Programming und damit ist alles gemeint, was in der 
Schaltung geht, also z.B. SPI-, JTAG-, Debugwire-, 
Bootloader-Programming.


Peter

von Falk (Gast)


Lesenswert?

@Peter Dannegger

>Im Datenblatt steht aber auch "SPI Serial Programming".

>ISP heißt In-System-Programming und damit ist alles gemeint, was in der
>Schaltung geht, also z.B. SPI-, JTAG-, Debugwire-,
>Bootloader-Programming.

Na dann hat Atmel den Bock geschossen. Shit happens.

MFG
Falk

von Clifford (Gast)


Lesenswert?

Atmel stiftet da sowieso ordentlich Verwirrung. Bei allen Controllern 
liegen die ISP Pins an der SPI Schnittstelle. Nur beim Mega128 (und dazu 
kompatiblen) liegt MOSI und MISO auf einem USART. Haben vielleicht 
gehofft das sich ein serielles Kabel durchsetzt das direkt über einen 
MAX232 programmieren kann? Ach ne, MAX232 reicht nicht. Man braucht 3 Rx 
Treiber (MOSI, SCK und RST).

Jedenfalls ging das nach hinten los

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
Noch kein Account? Hier anmelden.