Set up files for lab 3
This commit is contained in:
parent
cc67ab1282
commit
de0657ce5e
|
@ -0,0 +1,5 @@
|
||||||
|
**/*.elf
|
||||||
|
**/*.log
|
||||||
|
**/*.synctex.gz
|
||||||
|
**/*.aux
|
||||||
|
**/.vscode
|
|
@ -0,0 +1,31 @@
|
||||||
|
SOURCES = $(wildcard *.c)
|
||||||
|
EXEC = $(patsubst %.c, %.elf, $(SOURCES))
|
||||||
|
DEVICE = msp430g2553
|
||||||
|
INSTALL_DIR=$(HOME)/ti/msp430_gcc
|
||||||
|
|
||||||
|
GCC_DIR = $(INSTALL_DIR)/bin
|
||||||
|
SUPPORT_FILE_DIRECTORY = $(INSTALL_DIR)/include
|
||||||
|
|
||||||
|
CC = $(GCC_DIR)/msp430-elf-gcc
|
||||||
|
GDB = $(GCC_DIR)/msp430-elf-gdb
|
||||||
|
|
||||||
|
#O0 works, O1 works, O2 doesn't -Os works
|
||||||
|
CFLAGS = -I $(SUPPORT_FILE_DIRECTORY) -mmcu=$(DEVICE) -Os -g
|
||||||
|
LFLAGS = -L $(SUPPORT_FILE_DIRECTORY) -T $(DEVICE).ld
|
||||||
|
|
||||||
|
all: prog1 prog2 adc pwm
|
||||||
|
|
||||||
|
prog1: prog1.c
|
||||||
|
$(CC) $(CFLAGS) $(LFLAGS) $? -o prog1.elf
|
||||||
|
prog2: prog2.c
|
||||||
|
$(CC) $(CFLAGS) $(LFLAGS) $? -o prog2.elf
|
||||||
|
adc: adc.c
|
||||||
|
$(CC) $(CFLAGS) $(LFLAGS) $? -o adc.elf
|
||||||
|
pwm: pwm.c
|
||||||
|
$(CC) $(CFLAGS) $(LFLAGS) $? -o pwm.elf
|
||||||
|
|
||||||
|
debug: all
|
||||||
|
$(GDB) ${EXEC}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm *.elf
|
|
@ -0,0 +1,49 @@
|
||||||
|
//******************************************************************************
|
||||||
|
// MSP430G2x31 Demo - ADC10, Sample A1, AVcc Ref, Set P1.0 if > 0.75*AVcc
|
||||||
|
//
|
||||||
|
// Description: A single sample is made on A1 with reference to AVcc.
|
||||||
|
// Software sets ADC10SC to start sample and conversion - ADC10SC
|
||||||
|
// automatically cleared at EOC. ADC10 internal oscillator times sample (16x)
|
||||||
|
// and conversion.
|
||||||
|
//
|
||||||
|
// MSP430G2x31
|
||||||
|
// -----------------
|
||||||
|
// /|\| XIN|-
|
||||||
|
// | | |
|
||||||
|
// --|RST XOUT|
|
||||||
|
// | |
|
||||||
|
// | |
|
||||||
|
// | |
|
||||||
|
// | |
|
||||||
|
// | |
|
||||||
|
// input >---|P1.1/A1 P1.0|--> red Led onboard BIT0
|
||||||
|
// | |
|
||||||
|
// | P1.2|--> yellow Led
|
||||||
|
// | P1.6|--> green Led onboard BIT6
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// D. Dang
|
||||||
|
// Texas Instruments Inc.
|
||||||
|
//******************************************************************************
|
||||||
|
#include "msp430.h"
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
|
||||||
|
ADC10CTL0 = ADC10SHT_2 + ADC10ON; // ADC10ON
|
||||||
|
ADC10CTL1 = INCH_1; // input A1
|
||||||
|
ADC10AE0 |= 0x02; // PA.1 ADC option select
|
||||||
|
P1DIR |= 0x01; // Set P1.0 to output direction
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
|
||||||
|
while (ADC10CTL1 &ADC10BUSY); // ADC10BUSY?
|
||||||
|
if (ADC10MEM < 0x2FF) {
|
||||||
|
P1OUT &= ~0x01; // Clear P1.0 LED off
|
||||||
|
} else {
|
||||||
|
P1OUT |= 0x01; // Set P1.0 LED on
|
||||||
|
}
|
||||||
|
unsigned i;
|
||||||
|
for (i = 0xFFFF; i > 0; i--); // Delay
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//******************************************************************************
|
|
@ -0,0 +1,19 @@
|
||||||
|
OBJECTS=main.o
|
||||||
|
DEVICE = msp430g2553
|
||||||
|
INSTALL_DIR=$(HOME)/ti/msp430_gcc
|
||||||
|
|
||||||
|
GCC_DIR = $(INSTALL_DIR)/bin
|
||||||
|
SUPPORT_FILE_DIRECTORY = $(INSTALL_DIR)/include
|
||||||
|
|
||||||
|
CC = $(GCC_DIR)/msp430-elf-gcc
|
||||||
|
GDB = $(GCC_DIR)/msp430-elf-gdb
|
||||||
|
|
||||||
|
#O0 works, O1 works, O2 doesn't -Os works
|
||||||
|
CFLAGS = -I $(SUPPORT_FILE_DIRECTORY) -mmcu=$(DEVICE) -Os -g
|
||||||
|
LFLAGS = -L $(SUPPORT_FILE_DIRECTORY) -T $(DEVICE).ld
|
||||||
|
|
||||||
|
all: ${OBJECTS}
|
||||||
|
$(CC) $(CFLAGS) $(LFLAGS) $? -o main.elf
|
||||||
|
|
||||||
|
debug: all
|
||||||
|
$(GDB) main.elf
|
|
@ -0,0 +1,37 @@
|
||||||
|
#include <msp430.h>
|
||||||
|
|
||||||
|
volatile unsigned int i = 0; // Initialize variables. This will keep count of how many cycles between LED toggles
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer. This line of code is needed at the beginning of most MSP430 projects.
|
||||||
|
// The watchdog timer can reset the device after a certain period of time.
|
||||||
|
|
||||||
|
P1DIR |= 0x41; // P1DIR is a register that configures the direction (DIR) of a port pin as an output or an input.
|
||||||
|
|
||||||
|
// To set a specific pin as output or input, we write a '1' or '0' on the appropriate bit of the register.
|
||||||
|
// P1DIR = <PIN7><PIN6><PIN5><PIN4><PIN3><PIN2><PIN1><PIN0>
|
||||||
|
// Since we want to blink the on-board LEDs, we want to set the direction of Port 1, Pins 0 and 6 (P1.0, P1.6) as outputs
|
||||||
|
|
||||||
|
// We do that by writing a 1 on the PIN0 and PIN6 bits of the P1DIR register
|
||||||
|
// P1DIR = 0100 0001
|
||||||
|
// P1DIR = 0x41 <-- this is the hexadecimal conversion of 0010 0001
|
||||||
|
for (;;) // This for-loop will cause the lines of code within to loop infinitely
|
||||||
|
{
|
||||||
|
|
||||||
|
// P1OUT is the register which holds the status of the LEDs.
|
||||||
|
// '1' specifies that it's ON or HIGH, while '0' specifies that it's OFF or LOW
|
||||||
|
// Since our LEDs are tied to P1.0 and P1.6, we will toggle the appropriate bits in P1OUT
|
||||||
|
|
||||||
|
for(i=0; i< 20000; i++){ // Delay between LED toggles. This for-loop will run until the condition is met.
|
||||||
|
if (i == 0)
|
||||||
|
P1OUT ^= 0x01; // toggle the red LED (P1.0)
|
||||||
|
if (i == 6000)
|
||||||
|
P1OUT ^= 0x40; // toggle the green LED (P1.6)
|
||||||
|
// You need to be a little careful with using for loops for time delays. Optimizing compilers will
|
||||||
|
// notice if nothing happens inside a loop, and simply omit the loop to speed up the code.
|
||||||
|
// here, we have some comparisons being done inside the loop, so the code runs as desired even if
|
||||||
|
// the compiler optimizes.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* PHYS319 Lab3 Timing example in C
|
||||||
|
*
|
||||||
|
* Written by Ryan Wicks
|
||||||
|
* 16 January 2012
|
||||||
|
*
|
||||||
|
* This program is a C version of the assembly program that formed part of lab 2.
|
||||||
|
* This is not the best way to implement timing, or to organize your code.
|
||||||
|
* It is simply one way.
|
||||||
|
*
|
||||||
|
* This will almost certainly not give exactly the same timing as the assembly
|
||||||
|
* program from lab 2, and the output assembly will also be very different, even
|
||||||
|
* though the task is similar.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <msp430.h>
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
volatile unsigned int count; // You must declare your variables in C
|
||||||
|
// notice the label volatile. What happens if you remove this label?
|
||||||
|
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
|
||||||
|
P1DIR = 0x41; // Set P1 output direction
|
||||||
|
P1OUT = 0x01; // Set the output
|
||||||
|
|
||||||
|
while (1) { // Loop forever
|
||||||
|
count = 60000;
|
||||||
|
while(count != 0) {
|
||||||
|
count--; // decrement
|
||||||
|
}
|
||||||
|
P1OUT = P1OUT ^ 0x41; // bitwise xor the output with 0x41
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* PHYS319 Lab 3 Interrupt Example in C
|
||||||
|
*
|
||||||
|
* Written by Ryan Wicks
|
||||||
|
* 16 Jan 2012
|
||||||
|
*
|
||||||
|
* This program is a C version of the assembly program that formed part of
|
||||||
|
* lab 2.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#include <msp430.h>
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
|
||||||
|
P1DIR = 0xF7; // C does not have a convenient way of
|
||||||
|
// representing numbers in binary; use hex instead
|
||||||
|
P1OUT = 0x49;
|
||||||
|
P1REN = 0x08; // enable resistor
|
||||||
|
P1IE = 0x08; // Enable input at P1.3 as an interrupt
|
||||||
|
|
||||||
|
_BIS_SR (LPM4_bits + GIE); // Turn on interrupts and go into the lowest
|
||||||
|
// power mode (the program stops here)
|
||||||
|
// Notice the strange format of the function, it is an "intrinsic"
|
||||||
|
// ie. not part of C; it is specific to this chipset
|
||||||
|
}
|
||||||
|
|
||||||
|
// Port 1 interrupt service routine
|
||||||
|
void __attribute__ ((interrupt(PORT1_VECTOR))) PORT1_ISR(void) {
|
||||||
|
P1OUT ^= 0x41; // toggle the LEDS
|
||||||
|
P1IFG &= ~0x08; // Clear P1.3 IFG. If you don't, it just happens again.
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include "msp430.h"
|
||||||
|
|
||||||
|
void main(void) {
|
||||||
|
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
|
||||||
|
|
||||||
|
P1DIR |= BIT2; // P1.2 to output
|
||||||
|
P1SEL |= BIT2; // P1.2 to TA0.1
|
||||||
|
|
||||||
|
CCR0 = 1000-1; // PWM Period
|
||||||
|
CCTL1 = OUTMOD_7; // CCR1 reset/set
|
||||||
|
CCR1 = 250; // CCR1 PWM duty cycle
|
||||||
|
TACTL = TASSEL_2 + MC_1; // SMCLK, up mode
|
||||||
|
_BIS_SR(LPM0_bits); // Enter Low Power Mode 0
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
\relax
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Lab 1}{1}}
|
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Lab 2}{3}}
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Student Number}{3}}
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Program 1}{4}}
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Program 2}{4}}
|
|
|
@ -1,171 +0,0 @@
|
||||||
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6350 64-bit) (preloaded format=pdflatex 2018.1.7) 18 JAN 2018 18:16
|
|
||||||
entering extended mode
|
|
||||||
**"./Lab 1 and 2.tex"
|
|
||||||
("Lab 1 and 2.tex"
|
|
||||||
LaTeX2e <2017-04-15>
|
|
||||||
Babel <3.10> and hyphenation patterns for 75 language(s) loaded.
|
|
||||||
("C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
|
|
||||||
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
|
|
||||||
("C:\Program Files\MiKTeX 2.9\tex\latex\base\size11.clo"
|
|
||||||
File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
|
|
||||||
)
|
|
||||||
\c@part=\count79
|
|
||||||
\c@section=\count80
|
|
||||||
\c@subsection=\count81
|
|
||||||
\c@subsubsection=\count82
|
|
||||||
\c@paragraph=\count83
|
|
||||||
\c@subparagraph=\count84
|
|
||||||
\c@figure=\count85
|
|
||||||
\c@table=\count86
|
|
||||||
\abovecaptionskip=\skip41
|
|
||||||
\belowcaptionskip=\skip42
|
|
||||||
\bibindent=\dimen102
|
|
||||||
)
|
|
||||||
(C:\Users\Anthony\AppData\Roaming\MiKTeX\2.9\tex\latex\listings\listings.sty
|
|
||||||
("C:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty"
|
|
||||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
|
||||||
\KV@toks@=\toks14
|
|
||||||
)
|
|
||||||
\lst@mode=\count87
|
|
||||||
\lst@gtempboxa=\box26
|
|
||||||
\lst@token=\toks15
|
|
||||||
\lst@length=\count88
|
|
||||||
\lst@currlwidth=\dimen103
|
|
||||||
\lst@column=\count89
|
|
||||||
\lst@pos=\count90
|
|
||||||
\lst@lostspace=\dimen104
|
|
||||||
\lst@width=\dimen105
|
|
||||||
\lst@newlines=\count91
|
|
||||||
\lst@lineno=\count92
|
|
||||||
\lst@maxwidth=\dimen106
|
|
||||||
|
|
||||||
(C:\Users\Anthony\AppData\Roaming\MiKTeX\2.9\tex\latex\listings\lstmisc.sty
|
|
||||||
File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
|
|
||||||
\c@lstnumber=\count93
|
|
||||||
\lst@skipnumbers=\count94
|
|
||||||
\lst@framebox=\box27
|
|
||||||
)
|
|
||||||
(C:\Users\Anthony\AppData\Roaming\MiKTeX\2.9\tex\latex\listings\listings.cfg
|
|
||||||
File: listings.cfg 2015/06/04 1.6 listings configuration
|
|
||||||
))
|
|
||||||
Package: listings 2015/06/04 1.6 (Carsten Heinz)
|
|
||||||
|
|
||||||
("C:\Program Files\MiKTeX 2.9\tex\latex\base\alltt.sty"
|
|
||||||
Package: alltt 1997/06/16 v2.0g defines alltt environment
|
|
||||||
)
|
|
||||||
(C:\Users\Anthony\AppData\Roaming\MiKTeX\2.9\tex\latex\preprint\fullpage.sty
|
|
||||||
Package: fullpage 1999/02/23 1.1 (PWD)
|
|
||||||
\FP@margin=\skip43
|
|
||||||
)
|
|
||||||
("Lab 1 and 2.aux")
|
|
||||||
\openout1 = `"Lab 1 and 2.aux"'.
|
|
||||||
|
|
||||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 9.
|
|
||||||
LaTeX Font Info: ... okay on input line 9.
|
|
||||||
\c@lstlisting=\count95
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <12> on input line 10.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <8> on input line 10.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <6> on input line 10.
|
|
||||||
LaTeX Font Info: External font `cmex10' loaded for size
|
|
||||||
(Font) <10.95> on input line 27.
|
|
||||||
LaTeX Font Info: Try loading font information for OMS+cmr on input line 29.
|
|
||||||
("C:\Program Files\MiKTeX 2.9\tex\latex\base\omscmr.fd"
|
|
||||||
File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
|
|
||||||
)
|
|
||||||
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available
|
|
||||||
(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 29.
|
|
||||||
|
|
||||||
[1
|
|
||||||
|
|
||||||
{C:/ProgramData/MiKTeX/2.9/pdftex/config/pdftex.map}]
|
|
||||||
Overfull \hbox (59.12425pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 |_____| | |_____| | |_____| |
|
|
||||||
|_____| | | set manually[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (59.12425pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 ______|SW| ______|SW| ______|SW|
|
|
||||||
______|SW| |__ w/ 5V|GND to[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (59.12425pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 | GRD_|__| | GRD_|__| | GRD_|__|
|
|
||||||
| GRD_|__| | O| select digit[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (18.88344pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 | | |
|
|
||||||
| |__| | |[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (18.88344pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 | | |
|
|
||||||
| | | |[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (24.63213pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 D3 D2 D1
|
|
||||||
D0 STR A1 A0[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (24.63213pt too wide) in paragraph at lines 74--74
|
|
||||||
[] \OT1/cmtt/m/n/10.95 11 10 01
|
|
||||||
00 == A1 A0[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
[2] [3]
|
|
||||||
Overfull \hbox (53.37556pt too wide) in paragraph at lines 129--129
|
|
||||||
[] \OT1/cmtt/m/n/10.95 xor.b #0x41, R8 ; #00000001b -> #0100
|
|
||||||
0000b -> ... (LED1 -> LED2 -> ...)[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
|
|
||||||
Overfull \hbox (53.37556pt too wide) in paragraph at lines 131--131
|
|
||||||
[] \OT1/cmtt/m/n/10.95 mov.w #40000, R10 ; counts to decrement
|
|
||||||
(2nd dec, since max val is 65536)[]
|
|
||||||
[]
|
|
||||||
|
|
||||||
[4] [5] [6] ("Lab 1 and 2.aux") )
|
|
||||||
Here is how much of TeX's memory you used:
|
|
||||||
1500 strings out of 493323
|
|
||||||
21431 string characters out of 3139061
|
|
||||||
81399 words of memory out of 3000000
|
|
||||||
5086 multiletter control sequences out of 15000+200000
|
|
||||||
8979 words of font info for 32 fonts, out of 3000000 for 9000
|
|
||||||
1141 hyphenation exceptions out of 8191
|
|
||||||
26i,6n,32p,754b,219s stack positions out of 5000i,500n,10000p,200000b,50000s
|
|
||||||
<C:/Program Files/MiKTeX 2.9/fonts/type1/publi
|
|
||||||
c/amsfonts/cm/cmbx10.pfb><C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfon
|
|
||||||
ts/cm/cmbx12.pfb><C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cm
|
|
||||||
mi10.pfb><C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmmi8.pfb>
|
|
||||||
<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb><C:/Progr
|
|
||||||
am Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr12.pfb><C:/Program Files/
|
|
||||||
MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr17.pfb><C:/Program Files/MiKTeX 2.
|
|
||||||
9/fonts/type1/public/amsfonts/cm/cmr8.pfb><C:/Program Files/MiKTeX 2.9/fonts/ty
|
|
||||||
pe1/public/amsfonts/cm/cmsy10.pfb><C:/Program Files/MiKTeX 2.9/fonts/type1/publ
|
|
||||||
ic/amsfonts/cm/cmtt10.pfb>
|
|
||||||
Output written on "Lab 1 and 2.pdf" (6 pages, 129657 bytes).
|
|
||||||
PDF statistics:
|
|
||||||
61 PDF objects out of 1000 (max. 8388607)
|
|
||||||
0 named destinations out of 1000 (max. 500000)
|
|
||||||
1 words of extra memory for PDF output out of 10000 (max. 10000000)
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue