~arcachofo/simulide/1.1.0

« back to all changes in this revision

Viewing changes to src/simavr/cores/sim_mega32.c

  • Committer: arcachofo
  • Date: 2021-01-01 14:23:42 UTC
  • Revision ID: arcachofo@simulide.com-20210101142342-ozfljnll44g5lbl3
Initial Commit 0.5.15-RC3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
        sim_mega324.c
 
3
 
 
4
        Copyright 2008, 2009 Michel Pollet <buserror@gmail.com>
 
5
 
 
6
        This file is part of simavr.
 
7
 
 
8
        simavr is free software: you can redistribute it and/or modify
 
9
        it under the terms of the GNU General Public License as published by
 
10
        the Free Software Foundation, either version 3 of the License, or
 
11
        (at your option) any later version.
 
12
 
 
13
        simavr is distributed in the hope that it will be useful,
 
14
        but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
        GNU General Public License for more details.
 
17
 
 
18
        You should have received a copy of the GNU General Public License
 
19
        along with simavr.  If not, see <http://www.gnu.org/licenses/>.
 
20
 */
 
21
 
 
22
// atmega32 has different name for Watchdog Turn-off Enable register 
 
23
#define WDCE WDTOE
 
24
#include "sim_avr.h"
 
25
 
 
26
#define SIM_VECTOR_SIZE 4
 
27
#define SIM_MMCU                "atmega32"
 
28
#define SIM_CORENAME    mcu_mega32
 
29
 
 
30
#define ICP_PORT        PORTD
 
31
#define ICP_PIN         6
 
32
 
 
33
#define OC0_PORT        PORTB
 
34
#define OC0_PIN         3
 
35
 
 
36
#define OC1A_PORT       PORTD
 
37
#define OC1A_PIN        5
 
38
 
 
39
#define OC1B_PORT       PORTD
 
40
#define OC1B_PIN        4
 
41
 
 
42
#define OC2_PORT        PORTD
 
43
#define OC2_PIN         7
 
44
 
 
45
#define EXT_CLOCK0_PORT PORTB
 
46
#define EXT_CLOCK0_PIN          0
 
47
 
 
48
#define EXT_CLOCK1_PORT PORTB
 
49
#define EXT_CLOCK1_PIN          1
 
50
 
 
51
#define _AVR_IO_H_
 
52
#define __ASSEMBLER__
 
53
#include "avr/iom32.h"
 
54
// instantiate the new core
 
55
#include "sim_megax.h"
 
56
 
 
57
static avr_t * make()
 
58
{
 
59
        return avr_core_allocate(&SIM_CORENAME.core, sizeof(struct mcu_t));
 
60
}
 
61
 
 
62
avr_kind_t mega32 = {
 
63
        .names = { "atmega32", },
 
64
        .make = make
 
65
};
 
66