Forum: Mikrocontroller und Digitale Elektronik DOGS102 und Atmega32


von Rik (Gast)


Lesenswert?

Hallo,

verwende den Beispielcode aus folgendem Link:
http://basteln-mit-avr.de/Download/atmega644_DOGS102.zip

Folgende Parameter habe ich schon angepaßt:

- Makefile
1
LCD = 0
2
3
# MCU name
4
MCU = atmega32
5
6
7
# Processor frequency.
8
#     This will define a symbol, F_CPU, in all source code files equal to the 
9
#     processor frequency. You can then use this symbol in your source code to 
10
#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
11
#     automatically to create a 32-bit value in your source code.
12
#     Typical values are:
13
#         F_CPU =  1000000
14
#         F_CPU =  1843200
15
#         F_CPU =  2000000
16
#         F_CPU =  3686400
17
#         F_CPU =  2000000
18
#         F_CPU =  7372800
19
         F_CPU =  8000000

- spi.c
1
#include "tools.h"
2
3
4
//*----------------------------------------------------------------------------
5
// SPI-Bus initialisieren
6
//*----------------------------------------------------------------------------
7
#define LCD_A0      0     // PB0 (PIN1)  = Display A0      ->    PIN 38
8
#define LCD_RST     3     // PB1 (PIN2)  = Display Reset      ->    PIN 39 
9
#define LCD_CS      1     // PB4 (PIN5)  = Select          ->     PIN 40 
10
#define SPI_MOSI    5     // PB5 (PIN6)  = SPI MOSI        ->    PIN 36
11
#define SPI_MISO    6     // PB6 (PIN7)  = SPI MISO        ->     
12
#define SPI_SCK     7     // PB7 (PIN8)  = SPI SCK        ->    PIN 37
13
14
void SPI_PORT_Init(void) 
15
{
16
  // === PORT-B CONFIG ===
17
18
  DDRB  = (1 << LCD_RST) | (1 << LCD_A0) | (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << LCD_CS); 
19
20
21
  PORTB &=~(1<<SPI_MISO); 
22
23
  PORTB = (1<<SPI_MISO);

- dogm-graphic.h
1
//*----------------------------------------------------------------------------
2
// PORT - DEFINITIONEN
3
//*----------------------------------------------------------------------------
4
// == PORT C ==
5
#define LCD_A0      0    // PC1 (Pin 16) = Display A0      ->    PIN 38
6
#define LCD_RST     3     // PC2 (Pin 17) = Display Reset    ->    PIN 39 
7
#define LCD_CS      1     // PC4 (Pin 19) = Display Chip-Select ->     PIN 40 
8
#define SPI_MOSI    5     // PC5 (Pin 20) = SPI MOSI      ->    PIN 36
9
#define SPI_MISO    6     // PC6 (Pin 21) = SPI MISO      ->     leer
10
#define SPI_SCK     7     // PC7 (Pin 22) = SPI SCK        ->    PIN 37
11
12
13
14
//*----------------------------------------------------------------------------
15
#define MEM_FLASH     0
16
#define MEM_RAM       1
17
#define MEM_EEPROM    2
18
//*----------------------------------------------------------------------------
19
20
21
22
23
24
/*****************************************************************************
25
 * BEGIN CONFIG BLOCK
26
 *****************************************************************************/
27
//Select the display type: DOGS102: 102, DOGM128/DOGL128: 128, DOGM132: 132
28
#define DISPLAY_TYPE  102
29
30
//Should chip select (CS) be used?
31
#define LCD_USE_CHIPSELECT  1
32
//Use Backlight?  (0: no backlight, 1: backlight (on when pin is high), 2: backlight (on when pin is low))
33
#define LCD_USE_BACKLIGHT   0
34
35
#define PORT_A0  PORTB
36
#define DDR_A0   DDRB
37
#define PIN_A0   0
38
39
//Reset Port
40
#define PORT_RST PORTB
41
#define DDR_RST  DDRB
42
#define PIN_RST  3
43
44
//Backlight Port
45
#if LCD_USE_BACKLIGHT != 0
46
  #define PORT_LED PORB
47
  #define DDR_LED  DDRB
48
  #define PIN_LED  0
49
#endif
50
51
//Chip select
52
#if LCD_USE_CHIPSELECT == 1
53
  #define PORT_CS  PORTB
54
  #define DDR_CS   DDRB
55
   #define PIN_CS   1
56
#endif


Das DOGS102 ist wie folgt an dem Atmega angeschlossen:
Display:     Atmega32
SDA/SI ----->PB5 MOSI
SCK/SCL ---->PB7 SCK
CD/A0   ---->PB0
CSO/CS ----->PB1
Reset/RST -->PB3

Was könnte die Ursache sein, dass auf dem Display nichts angezeigt wird?

Gru0
Rik

von Gerhard G. (g_g)


Lesenswert?

Hallo,

Hast du das beachtet?

//ATMEGA644V  3,3V

Das DOGS102 kann nur mit 3,3 Volt betrieben werden.

http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A500%252FDOGS102-6.pdf;SID=11T2uTPH8AAAIAAFuH-bY4795c3c014d24098200cdb3e26e7be01

Ein alter Atmega32 funktioniert nicht mit 3,3 Volt.

Was hast du für eine Hardware genau!


Gruß G.G.

von Rik (Gast)


Lesenswert?

Hallo G.G.,

hab genau diesen Beitrag vorhin gelesen....habs ergänzt und 
funktioniert.

Hast Du ein Beispiel, wie man mit Jan.M 's Library z.b einen Rahmen 
zeichnet oder einen Kreis...bzw. einzelne Pixel setzt oder löscht....

Gruß

von Gerhard G. (g_g)


Lesenswert?

Hallo,



Rik schrieb:

> Hast Du ein Beispiel, wie man mit Jan.M 's Library z.b einen Rahmen
> zeichnet oder einen Kreis...bzw. einzelne Pixel setzt oder löscht....


leider nein.

http://www.basteln-mit-avr.de/atxmega128a3.html#dogm128_gr

Ich  versuche mal  eine Version von dieser Software für einen 
Atmega644/32

zu erstellen.Die hat alle Funktionen die du brauchst.


Melde mich nochmals

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.