mirror of
https://github.com/EranMorkon/AMTS.git
synced 2023-12-28 16:48:38 +00:00
Updates to style, started Pack documentation
This commit is contained in:
parent
1f0e2aad64
commit
a8ba4b7a79
19 changed files with 1037 additions and 37 deletions
51
Mieke/Pack/Files/HTBL Hollabrunn.STD-Pack.pdsc
Normal file
51
Mieke/Pack/Files/HTBL Hollabrunn.STD-Pack.pdsc
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
|
||||
<vendor>HTBL Hollabrunn</vendor>
|
||||
<name>STD-Pack</name>
|
||||
<description>HTL Hollabrunn library and include pack</description>
|
||||
<url></url>
|
||||
<supportContact></supportContact>
|
||||
|
||||
<releases>
|
||||
<release version="1.0.0" date="2017-07-16">
|
||||
Initial version
|
||||
</release>
|
||||
</releases>
|
||||
|
||||
<keywords>
|
||||
<keyword>HTBL Hollabrunn</keyword>
|
||||
<keyword>STD Library</keyword>
|
||||
<keyword>Serbus Library</keyword>
|
||||
</keywords>
|
||||
|
||||
<components>
|
||||
<component Cclass="HTBL Hollabrunn" Cgroup="Libraries" Csub="STDLib" Cversion="1.0.0">
|
||||
<description>Standard library for the HTBL</description>
|
||||
<files>
|
||||
<file category="header" name="Header/armv10_std.h"/>
|
||||
<file category="library" name="Library/ARMV10_STD.lib"/>
|
||||
</files>
|
||||
</component>
|
||||
<component Cclass="HTBL Hollabrunn" Cgroup="Libraries" Csub="SerbusLib" Cversion="1.0.0" condition="STDLib">
|
||||
<description>Serial bus library for the HTBL</description>
|
||||
<files>
|
||||
<file category="header" name="Header/armv10_serbus.h"/>
|
||||
<file category="library" name="Library/armv10_serbus.lib"/>
|
||||
</files>
|
||||
</component>
|
||||
<component Cclass="HTBL Hollabrunn" Cgroup="Assembler" Csub="Includes" Cversion="1.0.0">
|
||||
<description>Assembler includes for the HTBL</description>
|
||||
<files>
|
||||
<file category="header" name="Header/STD_STM32_F103RB_ASM.INC"/>
|
||||
<file category="header" name="Header/STM32_F103RB_MEM_MAP.INC"/>
|
||||
</files>
|
||||
</component>
|
||||
</components>
|
||||
|
||||
<conditions>
|
||||
<condition id="STDLib">
|
||||
<description>Standard library</description>
|
||||
<require Cclass="HTBL Hollabrunn" Cgroup="Libraries" Csub="STDLib" />
|
||||
</condition>
|
||||
</conditions>
|
||||
</package>
|
30
Mieke/Pack/Files/Header/STD_STM32_F103RB_ASM.INC
Normal file
30
Mieke/Pack/Files/Header/STD_STM32_F103RB_ASM.INC
Normal file
|
@ -0,0 +1,30 @@
|
|||
;******************************************************************************
|
||||
;* (C) Copyright HTL - HOLLABRUNN 2009-2010 All rights reserved. AUSTRIA *
|
||||
;* *
|
||||
;* File Name: std32_f103rb_std.inc *
|
||||
;* Autor: Josef Reisinger *
|
||||
;* Version: V1.00 *
|
||||
;* Date: 25/10/2010 *
|
||||
;* Description: Standard Library für ARM Corttex M3 *
|
||||
;******************************************************************************
|
||||
;* History: V1.00 creation *
|
||||
;* *
|
||||
;******************************************************************************
|
||||
|
||||
EXTERN init_leds_switches
|
||||
EXTERN set_leds
|
||||
EXTERN get_actual_switches
|
||||
EXTERN wait_ms
|
||||
EXTERN wait_10us
|
||||
EXTERN uart_init
|
||||
EXTERN uart_put_char
|
||||
EXTERN uart_get_char
|
||||
EXTERN uart_put_string
|
||||
EXTERN uart_clear
|
||||
EXTERN uart_put_hex
|
||||
EXTERN nib2asc
|
||||
EXTERN hex2bcd
|
||||
EXTERN asc2nib
|
||||
|
||||
|
||||
END
|
73
Mieke/Pack/Files/Header/STM32_F103RB_MEM_MAP.INC
Normal file
73
Mieke/Pack/Files/Header/STM32_F103RB_MEM_MAP.INC
Normal file
|
@ -0,0 +1,73 @@
|
|||
|
||||
; File soll in Verzeichnis "C:\Keil\ARM\INC\ST\STM32F10x" kopiert werden (Installationspfad µVision)
|
||||
|
||||
PERIPH_BB_BASE EQU 0x42000000
|
||||
|
||||
|
||||
PERIPH_BASE EQU 0x40000000
|
||||
APB2PERIPH_BASE EQU PERIPH_BASE + 0x10000
|
||||
AHBPERIPH_BASE EQU PERIPH_BASE + 0x20000
|
||||
|
||||
|
||||
GPIOA_BASE EQU APB2PERIPH_BASE + 0x0800
|
||||
GPIOA_CRL EQU GPIOA_BASE
|
||||
GPIOA_CRH EQU GPIOA_BASE+0x04
|
||||
GPIOA_IDR EQU GPIOA_BASE+0x08
|
||||
GPIOA_ODR EQU GPIOA_BASE+0x0c
|
||||
GPIOA_BSRR EQU GPIOA_BASE+0x10
|
||||
GPIOA_BRR EQU GPIOA_BASE+0x14
|
||||
GPIOA_LCKR EQU GPIOA_BASE+0x18
|
||||
|
||||
|
||||
GPIOB_BASE EQU APB2PERIPH_BASE + 0x0C00
|
||||
GPIOB_CRL EQU GPIOB_BASE
|
||||
GPIOB_CRH EQU GPIOB_BASE+0x04
|
||||
GPIOB_IDR EQU GPIOB_BASE+0x08
|
||||
GPIOB_ODR EQU GPIOB_BASE+0x0c
|
||||
GPIOB_BSRR EQU GPIOB_BASE+0x10
|
||||
GPIOB_BRR EQU GPIOB_BASE+0x14
|
||||
GPIOB_LCKR EQU GPIOB_BASE+0x18
|
||||
|
||||
|
||||
GPIOC_BASE EQU APB2PERIPH_BASE + 0x1000
|
||||
GPIOC_CRL EQU GPIOC_BASE
|
||||
GPIOC_CRH EQU GPIOC_BASE+0x04
|
||||
GPIOC_IDR EQU GPIOC_BASE+0x08
|
||||
GPIOC_ODR EQU GPIOC_BASE+0x0c
|
||||
GPIOC_BSRR EQU GPIOC_BASE+0x10
|
||||
GPIOC_BRR EQU GPIOC_BASE+0x14
|
||||
GPIOC_LCKR EQU GPIOC_BASE+0x18
|
||||
|
||||
|
||||
USART1_BASE EQU APB2PERIPH_BASE + 0x3800
|
||||
USART1_SR EQU USART1_BASE
|
||||
USART1_DR EQU USART1_BASE+0x04
|
||||
USART1_BRR EQU USART1_BASE+0x08
|
||||
USART1_CR1 EQU USART1_BASE+0x0C
|
||||
USART1_CR2 EQU USART1_BASE+0x10
|
||||
USART1_CR3 EQU USART1_BASE+0x14
|
||||
USART1_GTPR EQU USART1_BASE+0x18
|
||||
|
||||
|
||||
RCC_BASE EQU AHBPERIPH_BASE + 0x1000
|
||||
RCC_CR EQU RCC_BASE
|
||||
RCC_CFGR EQU RCC_BASE+0x04
|
||||
RCC_CIR EQU RCC_BASE+0x08
|
||||
RCC_APB2RSTR EQU RCC_BASE+0x0C
|
||||
RCC_APB1RSTR EQU RCC_BASE+0x10
|
||||
RCC_AHBENR EQU RCC_BASE+0x14
|
||||
RCC_APB2ENR EQU RCC_BASE+0x18
|
||||
RCC_APB1ENR EQU RCC_BASE+0x1C
|
||||
RCC_BDCR EQU RCC_BASE+0x20
|
||||
RCC_CSR EQU RCC_BASE+0x24
|
||||
RCC_AHBRSTR EQU RCC_BASE+0x28
|
||||
RCC_CFGR2 EQU RCC_BASE+0x2C
|
||||
|
||||
RCC_APB2ENR_IOPAEN EQU 0x0004
|
||||
RCC_APB2ENR_IOPBEN EQU 0x0008
|
||||
RCC_APB2ENR_IOPCEN EQU 0x0010
|
||||
RCC_APB2ENR_USART1EN EQU 0x4000
|
||||
|
||||
|
||||
END
|
||||
|
328
Mieke/Pack/Files/Header/armv10_serbus.h
Normal file
328
Mieke/Pack/Files/Header/armv10_serbus.h
Normal file
|
@ -0,0 +1,328 @@
|
|||
/******************************************************************************/
|
||||
/* (C) Copyright HTL - HOLLABRUNN 2009-2010 All rights reserved. AUSTRIA */
|
||||
/* */
|
||||
/* File Name: armv10_serbus.h */
|
||||
/* Autor: Jakob Maier */
|
||||
/* Version: V1.00 */
|
||||
/* Date: 23/07/2010 */
|
||||
/* Description: Library für Serielle Busse (I2C und SPI) für ARM Corttex M3 */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
/* History: 07.05.2010: Jakob Maier creation V1.00 (I2C) */
|
||||
/* - Beinhaltet alle wesentlichen Unterprogramme */
|
||||
/* die zur Kommunikation über den I2C-Bus */
|
||||
/* 28.02.2011: REJ V1.1 */
|
||||
/* - Library aus Funktionen erstellt */
|
||||
/******************************************************************************/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __ARMV10_SERBUS_H
|
||||
#define __ARMV10_SERBUS_H
|
||||
|
||||
//Hardware:
|
||||
//*********
|
||||
//
|
||||
//SCL=PB6
|
||||
//SDA=PB7
|
||||
//Wichtig: Die Leitungen zur Sicherheit mit 2stk. 4,7kOhm Pull-Up Widerständen an die 3,3V anpassen!
|
||||
//
|
||||
|
||||
|
||||
//Master Receiver:
|
||||
//****************
|
||||
//
|
||||
//1 Byte + Stop: init (-) start(adr+1,1) - read(&dat,x)
|
||||
//1 Byte + Stop: init (-) I2C1_read_1(adr+x,&dat)
|
||||
//
|
||||
//2 Byte + Stop: init (-) start(adr+1,0) - read(&dat,1) - read(&dat,x)
|
||||
//2 Byte + Stop: init (-) start(adr+1,0) - I2C1_read_last2(&dat1,&dat2)
|
||||
//
|
||||
//3 Byte + Stop: init (-) start(adr+1,0) (-) read(&dat,0) - read(&dat,1) - read(&dat,x)
|
||||
//3 Byte + Stop: init (-) start(adr+1,0) (-) read(&dat,0) - I2C1_read_last2(&dat1,&dat2)
|
||||
//
|
||||
//4 Byte + Stop: init (-) start(adr+1,0) (-) read(&dat,0) (-) read(&dat,0) - read(&dat,1) - read(&dat,x)
|
||||
//4 Byte + Stop: init (-) start(adr+1,0) (-) read(&dat,0) (-) read(&dat,0) - I2C1_read_last2(&dat1,&dat2)
|
||||
//
|
||||
//5 Byte + Stop: init (-) start(adr+1,0) (-) read(&dat,0) (-) read(&dat,0) (-) read(&dat,0) - read(&dat,1) - read(&dat,x)
|
||||
//...
|
||||
//n Byte + Stop: init (-) I2C1_read_n(adr+x,daten[],anz)
|
||||
//
|
||||
//Master Transmitter:
|
||||
//*******************
|
||||
//
|
||||
//1 Byte + Stop: init (-) start(adr+0,x) (-) send(data,1)
|
||||
//2 Byte + Stop: init (-) start(adr+0,x) (-) send(data,0) (-) send(data,1)
|
||||
//3 Byte + Stop: init (-) start(adr+0,x) (-) send(data,0) (-) send(data,0) (-) send(data,1)
|
||||
//...
|
||||
//n Byte + Stop (Pause zw. Byteübertragung mögl.): init (-) I2C1_send_n(adr+x,daten[],anz,pause)
|
||||
//
|
||||
//Legende:
|
||||
//********
|
||||
//
|
||||
// "(-)": Sofort danach oder nach einer beliebig langen Pause folgt die nächste Operation (Achtung: bei einem Reset kann es zu Error Nr. 0x86 kommen - Die Busleitungen sind noch immer auf 0, da mitten im Datenverkehr abgebrochen wurde)
|
||||
// " - ": Sofort danach folgt die nächste Operation (Es muss sofort reagiert werden)
|
||||
//
|
||||
|
||||
|
||||
/*-------------------------------------------------- I2C - Fehlercodes: -----------------------------*/
|
||||
// Ein Fehlercode beinhaltet zwei Arten von Daten: Wo der Fehler auftrat und was der Fehlergrund ist.
|
||||
// Die ersten 4bit (MSB) geben an, in welcher Routine sich der Fehler ereignet hat (Fehlerposition), die
|
||||
// letzten 4bit (LSB) geben die Fehlerart an. Ist kein Fehler aufgetreten, wird 0x00 als Code verwendet,
|
||||
// die Fehlerposition nicht miteinberechnet.
|
||||
// Fehlercode-Berechnung: "Fehlercode" = "Fehlerposition" | "Fehlerart";
|
||||
//
|
||||
#define info_success 0x00 //Kein Fehler aufgetreten (immer 0x00)
|
||||
|
||||
/*------------ Fehlerposition:---------*/
|
||||
#define err_at_init 0x80 //Fehler in der Initialisierungsroutine
|
||||
#define err_at_start 0x40 //Fehler in der Start- und Adressierungsroutine
|
||||
#define err_at_send 0x20 //Fehler in der Senderoutine
|
||||
#define err_at_read 0x10 //Fehler in der Empfangsroutine
|
||||
|
||||
/*----------- Fehlerarten:-------------*/
|
||||
#define error_I2C1_running 0x01 //Der I2C1-Bus ist bereits in Betrieb und kann nicht mehr initialisiert werden
|
||||
#define error_I2C1_disabled 0x02 //Es kann keine Startbedingung erzeugt werden, da der Bus außer Betrieb ist (Keine Initialisierung)
|
||||
#define error_no_master 0x03 //Der I2C1-Bus befindet sich nicht im Mastermode ("start()": Peripherie-Fehler; "send()": Startbedingung erzeugt?)
|
||||
#define error_no_transmitter 0x04 //Es können keine Daten gesandt werden, da der Slavebaustein zum lesen Adressiert wurde (R/W-bit muss 0 sein)
|
||||
#define error_not_addressed 0x05 //Die Hardware wurde nicht adressiert, NACK erhalten (Wurde die richtige Adresse eingestellt?)
|
||||
#define error_timeout_busy 0x06 //Der Bus kann derzeit noch nicht initialisiert werden, da bereits ein Datenverkehr ausgeführt wird
|
||||
//(Leitung auf "LOW" - PullUp-Widerstände vorhanden?)
|
||||
#define error_timeout_start 0x07 //Bei der Startbedingung ist es zu einem Time-Out gekommen (Ist der Bus belegt (Multimaster-Mode)?,
|
||||
//Ist vielleicht noch eine Datenübertragung im gange?)
|
||||
#define error_timeout_stop 0x08 //Bei der Stopbedingung ist es zu einem Time-Out gekommen (Ist vielleicht noch eine Datenübertragung im gange?)
|
||||
#define error_timeout_send 0x09 //Die Daten wurden nicht übertragen (Timeout) (Verwendet der Slave Clock-Streching?
|
||||
//Sind die Busleitungen auf "LOW" gefallen?)
|
||||
#define error_NACK 0x0A //Der Slave hat auf die Daten mit einem NACK geantwortet (Der Fehler liegt auf der Slave-Seite oder es wurde
|
||||
//dessen Übertragungsprotokoll verletzt/beendet)
|
||||
#define error_no_data 0x0B //Bei "read()". Entweder wurde noch kein Baustein adresiert oder nach Beendigung der letzten Übertragung
|
||||
//sind keine ausstehenden Daten mehr vorhanden (Adressiert? "I2C1_data_available()" verwendet?)
|
||||
|
||||
|
||||
#ifdef ARMV10_SERBUS_MOD
|
||||
#define EXPORT
|
||||
#else
|
||||
#define EXPORT extern
|
||||
#endif
|
||||
|
||||
/* ---------------------------Exported functions ---------------------------- */
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C_error_message */
|
||||
/* */
|
||||
/* Aufgabe: Gibt eine I2C Fehleranalyse auf UART aus */
|
||||
/* Input: I2C Fehlercode */
|
||||
/* return: I2C Fehlercode */
|
||||
/* Remark: Der Fehler wird als Rückgabewert weitergegeben um das UPro direkt */
|
||||
/* in einer Fehlerabfrage verwenden zu können: */
|
||||
/* "if(I2C_error_message(I2C1_init())!=info_success)" */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C_error_message(char errorcode);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_init */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert den I2C1-Bus im Standard-Modus (100kHz) */
|
||||
/* SCL=PB6, SDA=PB7 . Es wird die GPIOB und I2C1-Peripherie enabled. */
|
||||
/* I2C1 kann mit "I2C1_disable()" disabled werden. */
|
||||
/* Input: - */
|
||||
/* return: I2C Fehlercode */
|
||||
/* Remark: Nächster Schritt: "I2C1_start()" */
|
||||
/* I2C Fehlerposition 0x80 */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_init(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_disable */
|
||||
/* */
|
||||
/* Aufgabe: Schaltet die I2C1-Peripherie ab. Es ist keine Buskommunikation */
|
||||
/* mehr möglich. Die Ports werden als Output konfiguriert und auf */
|
||||
/* 1 gesetzt. */
|
||||
/* Input: - */
|
||||
/* return: - */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
/* !!!!!!!!!!!!!!!!! Noch nicht getestet: !!!!!!!!!!!!!!!!!!!!!! */
|
||||
EXPORT void I2C1_disable(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_start */
|
||||
/* */
|
||||
/* Aufgabe: Erzeugt eine Startbedingung und Adressiert einen Slavebaustein. */
|
||||
/* Je nach R/W-Bit ist man Master Transmitter (0) oder Master */
|
||||
/* Receiver(1). */
|
||||
/* Input: "adresse": 7bit Adresse und Read/!Write - Bit "single": */
|
||||
/* Wenn das R/W-Bit 1 ist und nur ein Byte empfangen werden soll ist */
|
||||
/* "single" ungleich 0. */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition 0x40 */
|
||||
/* Nächster I2C Schritt: Senden oder Empfangen */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_start(char adresse, char single);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_get_mode() */
|
||||
/* */
|
||||
/* Aufgabe: Übergibt den Status des I2C-Busses (Slave, Master Transmitter */
|
||||
/* oder Master Receiver). Damit kann im Nachhinein festgestellt */
|
||||
/* werden was das R/W-Bit war. */
|
||||
/* Input: - */
|
||||
/* return: 0x00: Der Bus ist deaktiviert */
|
||||
/* 0x01: Der Bus wurde als Slave adressiert */
|
||||
/* 0x02: Master Transmitter */
|
||||
/* 0x03: Master Receiver */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
// !!!!!!!!!!!!!!!!!!!!!! Noch nicht getestet !!!!!!!!!!!!!!!!!!!!
|
||||
EXPORT char I2C1_get_mode(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_data_available() */
|
||||
/* */
|
||||
/* Aufgabe: Überprüft ob im Master-Receiver Modus Daten die Empfangen */
|
||||
/* wurden zum Abruf bereit stehen. Damit kann im Unterprogramm */
|
||||
/* "I2C1_read()" eine Endlosschleife vermieden werden. */
|
||||
/* Input: - */
|
||||
/* return: 0x00: Keine Daten vorhanden */
|
||||
/* 0x01: Daten im Datenregister */
|
||||
/* */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_data_available(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_read */
|
||||
/* */
|
||||
/* Aufgabe: Liest die Daten aus, die vom Slave gesendet wurden. Sind keine */
|
||||
/* Daten vorhanden wird solange gewartet, bis welche empfangen */
|
||||
/* wurden */
|
||||
/* Input: "daten": Variable in die die Daten geschrieben werden. */
|
||||
/* "last": Wenn dass das vorletzte Byte ist dass empfangen werden */
|
||||
/* soll, ist "last" ungleich 0 */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition 0x10 */
|
||||
/* Nächster Schritt: Lesen oder nach Stop "I2C1_data_available()" */
|
||||
/* bzw. Start oder Disable */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_read(char *daten, char last);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_read_1 */
|
||||
/* */
|
||||
/* Aufgabe: Erzeugt eine Startbedingung, Übernimmt die Adressierung, empfangt*/
|
||||
/* ein einzelnes Byte und erzeugt dann wieder eine Stopbedingung */
|
||||
/* Input: "adresse": Slaveadresse (Das R/W-Bit wird im UPro auf 1 gesetzt) */
|
||||
/* "daten": Variable in die das empfangene Byte geschrieben wird */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition 0x40 und 0x10 */
|
||||
/* Nächster Schritt: Start oder Disable */
|
||||
/******************************************************************************/
|
||||
EXPORT int I2C1_read_1(char adresse, char *daten);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_read_last2 */
|
||||
/* */
|
||||
/* Aufgabe: Empfängt 2 Bytes und erzeugt dann eine Stopbedingung. */
|
||||
/* Kann bei einem datenempfang ab 2 Bytes immer verwendet werden */
|
||||
/* */
|
||||
/* Input: "daten1": Variable für das vorletzte Empfangene Byte */
|
||||
/* "daten2": Das letzte Empfangsbyte */
|
||||
/* */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition: 0x10 */
|
||||
/* Nächster I2CSchritt: Start oder Disable */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_read_last2(char *daten1, char *daten2);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_read_n */
|
||||
/* */
|
||||
/* Aufgabe: Liest eine bestimmte Anzahl an Daten ein. */
|
||||
/* Übernimmt auch die Startbedingung, die Adressierung */
|
||||
/* und die Stopbedingung. Das R/W-Bit wird im UPro gesetzt. */
|
||||
/* Input: "adresse": Adresse des Slave-Bausteins */
|
||||
/* "daten[]": Array, in das die Empfangsdaten geschrieben werden */
|
||||
/* "anzahl": Wie viele Bytes empfangen werden sollen (ab 1 Byte) */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition: 0x40 und 0x20 */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_read_n(char adresse, char daten[],int anzahl);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_send */
|
||||
/* */
|
||||
/* Aufgabe: Sendet ein einzelnes Byte an den Slave und kann dann eine */
|
||||
/* Stopbedingung erzeugen. Das R/W-Bit muss 0 (Master Transmitter) */
|
||||
/* gewesen sein. */
|
||||
/* */
|
||||
/* Input: "daten": Die Sendedaten */
|
||||
/* "stop": Wenn dies Variable ungleich 0 ist, wird nach der */
|
||||
/* Übertragung eine Stopbedingung erzeugt */
|
||||
/* return: */
|
||||
/* Remark: I2C Fehlerposition: 0x20 */
|
||||
/* Nächster Schritt: Senden, oder wenn "stop" ungleich 0: */
|
||||
/* Start oder Disable */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_send(char daten,char stop);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: I2C1_send_n */
|
||||
/* */
|
||||
/* Aufgabe: Übernimmt die Startbedingung und die Adressierung. */
|
||||
/* Sendet danach eine Reihe an Daten an den Slave wobei dazwischen */
|
||||
/* Pausen eingelegt werden können. Danach kommt es zu einer */
|
||||
/* Stopcondition */
|
||||
/* Input: "adresse": Slaveadresse (Das R/W-Bit wird im UPro auf 0 gesetzt) */
|
||||
/* "daten[]": Array dessen Inhalt an den Slave gesendet wird */
|
||||
/* "anzahl": Anzahl der Bytes aus dem Array die gesendet werden */
|
||||
/* "Pause": Pause in Millisekunden die zwischen den Übertragungen */
|
||||
/* eingelegt wird */
|
||||
/* return: Fehlercode */
|
||||
/* Remark: I2C Fehlerposition: 0x40 und 0x20 */
|
||||
/* Nächster Schritt: Start oder Disable */
|
||||
/******************************************************************************/
|
||||
EXPORT char I2C1_send_n(char adresse, char daten[],int anzahl,int pause);
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: SPI1_Init */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert SPI 1 Schnittstelle */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
EXPORT void SPI1_Init(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: SPI1_Send */
|
||||
/* */
|
||||
/* Aufgabe: Sendet 1 Byte via SPI1 Schnittstelle */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
EXPORT void SPI1_Send(unsigned char send);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: SPI1_Receive */
|
||||
/* */
|
||||
/* Aufgabe: Empfängt 1 Byte von SPI1 Schnittstelle */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/* Remark: */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
EXPORT unsigned char SPI1_Receive(void);
|
||||
|
||||
|
||||
|
||||
#undef EXPORT
|
||||
#endif /* __ARMV10_SERBUS_H */
|
||||
|
||||
/******************* (C) HTL - HOLLABRUNN 2009-2010 *****END OF FILE****/
|
396
Mieke/Pack/Files/Header/armv10_std.h
Normal file
396
Mieke/Pack/Files/Header/armv10_std.h
Normal file
|
@ -0,0 +1,396 @@
|
|||
/******************************************************************************/
|
||||
/* (C) Copyright HTL - HOLLABRUNN 2009-2010 All rights reserved. AUSTRIA */
|
||||
/* */
|
||||
/* File Name: armv10_std.h */
|
||||
/* Autor: Josef Reisinger */
|
||||
/* Version: V1.00 */
|
||||
/* Date: 07/05/2010 */
|
||||
/* Description: Standard Library für ARM Corttex M3 */
|
||||
/******************************************************************************/
|
||||
/* History: V1.00 creation */
|
||||
/* V1.01 09.06.2010 REJ: */
|
||||
/* Add Bit banding Adresses for LED/Switsches Board */
|
||||
/* V2.0 19.02.2011 REJ: */
|
||||
/* - dil_taster_init, dil_led_init hinzugefügt */
|
||||
/* - lcd_setcursor auf 4 zelige anzeige erweiterst */
|
||||
/* - Bitbanding Definitiones von Pointer (Adresse der */
|
||||
/* Speicherzelle auf Inhalt der Speicherzelle umgestellt */
|
||||
/* - Fehler bei Portmodi Settings in Init_led Switsches */
|
||||
/* korrigiert */
|
||||
/******************************************************************************/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __ARMV10_STD_H
|
||||
#define __ARMV10_STD_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include <stm32f10x.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/*----------------------------- Define Pins for LED and Swistches--------------*/
|
||||
/* Einzel-Portpins im Bitbandbereich festlegen */
|
||||
|
||||
#define GPIOA_IDR GPIOA_BASE + 2*sizeof(uint32_t) // Calc peripheral address GPIOA IDR
|
||||
#define GPIOA_ODR GPIOA_BASE + 3*sizeof(uint32_t)
|
||||
#define GPIOB_IDR GPIOB_BASE + 2*sizeof(uint32_t)
|
||||
#define GPIOB_ODR GPIOB_BASE + 3*sizeof(uint32_t) // Calc peripheral address GPIOB ODR
|
||||
#define GPIOC_IDR GPIOC_BASE + 2*sizeof(uint32_t)
|
||||
#define GPIOC_ODR GPIOC_BASE + 3*sizeof(uint32_t)
|
||||
|
||||
// Calc Bit Band Adress from peripheral address: a = peripheral address b = Bit number
|
||||
#define BITBAND_PERI(a,b) ((PERIPH_BB_BASE + (a-PERIPH_BASE)*32 + (b*4)))
|
||||
|
||||
#define SW0 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,0))) // PA0
|
||||
#define SW1 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,1))) // PA1
|
||||
#define SW2 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,2))) // PA2
|
||||
#define SW3 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,3))) // PA3
|
||||
#define SW4 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,4))) // PA4
|
||||
#define SW5 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,5))) // PA5
|
||||
#define SW6 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,6))) // PA6
|
||||
#define SW7 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,7))) // PA7
|
||||
|
||||
#define PIEZO *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,0))) //Portleitung des Piezo-Summers (PB0)
|
||||
|
||||
#define LED0 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,8))) // PB8
|
||||
#define LED1 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,9))) // PB9
|
||||
#define LED2 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,10))) // PB10
|
||||
#define LED3 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,11))) // PB11
|
||||
#define LED4 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,12))) // PB12
|
||||
#define LED5 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,13))) // PB13
|
||||
#define LED6 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,14))) // PB14
|
||||
#define LED7 *((volatile unsigned long *)(BITBAND_PERI(GPIOB_ODR,15))) // PB15
|
||||
|
||||
#define DIL_LED1 *((volatile unsigned long *)(BITBAND_PERI(GPIOD_ODR,2))) //PD2
|
||||
#define DIL_LED2 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_ODR,13))) //PC13
|
||||
#define DIL_LED3 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_ODR,8))) //PA8
|
||||
|
||||
#define DIL_TASTER1 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,5))) //PC5
|
||||
#define DIL_TASTER2 *((volatile unsigned long *)(BITBAND_PERI(GPIOC_IDR,13))) //PC13
|
||||
#define DIL_TASTER3 *((volatile unsigned long *)(BITBAND_PERI(GPIOA_IDR,8))) //PA8
|
||||
|
||||
|
||||
|
||||
/*--------------------------------- Definitions LCD --------------------------*/
|
||||
#define LineLen 16 /* Width of LCD (in characters) */
|
||||
#define NumLines 2 /* Hight of LCD (in lines) */
|
||||
|
||||
/* ---------------------Vordefinierte Frequenzen fuer Tonerzeugung -----------*/
|
||||
#define ton_C1 262
|
||||
#define ton_D1 293
|
||||
#define ton_E1 329
|
||||
#define ton_F1 349
|
||||
#define ton_G1 391
|
||||
#define ton_A1 440
|
||||
#define ton_H1 493
|
||||
#define ton_C2 523
|
||||
#define ton_D2 587
|
||||
#define ton_E2 659
|
||||
#define ton_F2 698
|
||||
#define ton_G2 783
|
||||
#define ton_A2 880
|
||||
#define ton_H2 987
|
||||
#define ton_C3 1046
|
||||
|
||||
/* ------------------- Vordefinierte Längen (ms) für Tonerzeugung --------------*/
|
||||
#define ganze 800
|
||||
#define halbe 400
|
||||
#define viertel 200
|
||||
#define achtel 100
|
||||
#define sechzehntel 50
|
||||
|
||||
|
||||
#ifdef ARMV10_STD_MOD
|
||||
#define EXPORT
|
||||
#else
|
||||
#define EXPORT extern
|
||||
#endif
|
||||
|
||||
/* ----------------------------Exported functions ---------------------------- */
|
||||
|
||||
/* ------------------------- Reset and Clock Control -----------------------*/
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Set System Clock to 72MHz */
|
||||
/* Input: none */
|
||||
/* return: none */
|
||||
/******************************************************************************/
|
||||
EXPORT void set_clock_72MHz(void);
|
||||
|
||||
/* ------------------------- LED/ Switches Board Funktions -------------------*/
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: init_leds_switches */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert Portleitungen für LED / Schalterplatine */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void init_leds_switches(void);
|
||||
|
||||
/*******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: set_leds */
|
||||
/* */
|
||||
/* Aufgabe: gibt hexadezimalen Wert in auf 8 Leds aus */
|
||||
/* (an Port 0 angeschlossen) */
|
||||
/* Input: value = Wert auf den LEDS gesetzt werden sollen */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void set_leds (char value);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: get_switches */
|
||||
/* */
|
||||
/* Aufgabe: liest aktuelle Schalterstellung ein */
|
||||
/* Input: */
|
||||
/* return: aktuelle Schalterstellung */
|
||||
/******************************************************************************/
|
||||
EXPORT char get_switches(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: dil_taster_init */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert Portleitung für Taster auf DIL */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void dil_taster_init(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: dil_led _init */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert Portleitung für LEDS auf DIL */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void dil_led_init(void);
|
||||
|
||||
|
||||
/* ------------------------- Miscellaneous Funktions --------------------------*/
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: WAIT_MS */
|
||||
/* */
|
||||
/* Aufgabe: Wartet die angegebene Anzahl an Millisekunden */
|
||||
/* Input: ms = Anzahl der zu wartenden Millisekunden */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void wait_ms(int ms);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: wait_10us */
|
||||
/* */
|
||||
/* Aufgabe: Wartet 10µs */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void wait_10us(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Function converts a Nibble(0-F) to an ASCII ('0'-'F') */
|
||||
/* Input: nib: Nibble to convert */
|
||||
/* Output: nib: Converted Nibble */
|
||||
/* return: - */
|
||||
/******************************************************************************/
|
||||
EXPORT void nib2asc(char *nib);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Function converts an ASCII('0'-'F') to a Nibble(0-F) */
|
||||
/* Input: asc: ASCII Code */
|
||||
/* Output: asc: Hex Value */
|
||||
/* return: - */
|
||||
/******************************************************************************/
|
||||
EXPORT void asc2nib(char *asc);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Function converts a Hex-Code (00-FF) to an BCD (0-255) */
|
||||
/* Input: hex: Hex Value */
|
||||
/* return: BCD Value */
|
||||
/******************************************************************************/
|
||||
EXPORT int hex2bcd(char hex);
|
||||
|
||||
|
||||
/* ------------------------- UART Funktionen ----------------------------------*/
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Initialisiert UART1 */
|
||||
/* Input: Baudrate */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_init(unsigned long baudrate);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: liest ein Zeichen von UART1 ein */
|
||||
/* Input: */
|
||||
/* return: eingelesens Zeichen */
|
||||
/******************************************************************************/
|
||||
EXPORT char uart_get_char(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Ausgabe eines Zeichens auf UART1 */
|
||||
/* Input: ch: Zeichen in ASCII Code */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_put_char(char ch);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Ausgabe eines 8 Bit Hex Wertes als ASCII String auf UART1 */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_put_hex(char c);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Ausgabe eines Strings auf UART1 */
|
||||
/* Input: string: C- String der aud UART1 ausgegeben werden soll */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_put_string(char *string);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: sendet ein CLEAR Screen String ("ESC[2J") zu einem VT100 Terminal */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_clear(void);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: sendet Positionierungsstring auf VT100 Terminal "ESC[y;xH" */
|
||||
/* Input: */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void uart_setpos(char x,char y);
|
||||
|
||||
/* ------------------------- LCD Funktionen ----------------------------------*/
|
||||
|
||||
/*******************************************************************************
|
||||
* Initialize the LCD controller *
|
||||
* Parameter: *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_init (void);
|
||||
|
||||
/*******************************************************************************
|
||||
* Write command to LCD controller *
|
||||
* Parameter: c: command to be written *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_write_cmd (unsigned char c);
|
||||
|
||||
/*******************************************************************************
|
||||
* Write data to LCD controller *
|
||||
* Parameter: c: data to be written *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_write_data (unsigned char c);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Print Character to current cursor position */
|
||||
/* Input: c: character to be printed */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void lcd_put_char (char c);
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: */
|
||||
/* */
|
||||
/* Aufgabe: Ausgabe eines 8 Bit Hex Wertes als ASCII String auf LCD */
|
||||
/* Input: c: Hex Value to be printed */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void lcd_put_hex(char c);
|
||||
|
||||
|
||||
/*******************************************************************************/
|
||||
/* Set cursor position on LCD display */
|
||||
/* Parameter: line: line position (0-3) */
|
||||
/* column: column position (0-15) */
|
||||
/* Return: */
|
||||
/*******************************************************************************/
|
||||
EXPORT void lcd_set_cursor (int line_nr, int column_nr);
|
||||
|
||||
/*******************************************************************************
|
||||
* Clear the LCD display *
|
||||
* Parameter: *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_clear (void);
|
||||
|
||||
/*******************************************************************************
|
||||
* Print sting to LCD display *
|
||||
* Parameter: string: pointer to output string *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_put_string (char *string);
|
||||
|
||||
/*******************************************************************************
|
||||
* Print a bargraph to LCD display *
|
||||
* Parameter: val: value 0..100 % *
|
||||
* size: size of bargraph 1..16 *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_bargraph (int value, int size);
|
||||
|
||||
/*******************************************************************************
|
||||
* Display bargraph on LCD display *
|
||||
* Parameter: pos_y: vertical position of bargraph *
|
||||
* pos_x: horizontal position of bargraph start *
|
||||
* value: size of bargraph active field (in pixels) *
|
||||
* Return: *
|
||||
*******************************************************************************/
|
||||
EXPORT void lcd_bargraphXY (int pos_y, int pos_x, int value);
|
||||
|
||||
|
||||
|
||||
/* ------------------------- ADC Funktionen ----------------------------------*/
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: adc1_convert */
|
||||
/* */
|
||||
/* Aufgabe: liefert aktuellen Wert von ADC1 für Kanal channel */
|
||||
/* */
|
||||
/* Input: channel to convert */
|
||||
/* return: converted value (12Bit right aligned) */
|
||||
/******************************************************************************/
|
||||
EXPORT unsigned short int adc1_convert(unsigned char channel);
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* U N T E R P R O G R A M M: ton */
|
||||
/* */
|
||||
/* Aufgabe: Wiedergabe eines Ton auf Piezo Summer */
|
||||
/* */
|
||||
/* Input: frequenz: Frequenz des Tons in Hz */
|
||||
/* dauer: Dauer des in ms */
|
||||
/* return: */
|
||||
/******************************************************************************/
|
||||
EXPORT void ton(int frequenz,int dauer_ms);
|
||||
|
||||
#undef EXPORT
|
||||
#endif /* __ARMV10_STD_H */
|
||||
|
||||
/******************* (C) HTL - HOLLABRUNN 2009-2010 *****END OF FILE****/
|
BIN
Mieke/Pack/Files/Library/ARMV10_STD.lib
Normal file
BIN
Mieke/Pack/Files/Library/ARMV10_STD.lib
Normal file
Binary file not shown.
BIN
Mieke/Pack/Files/Library/armv10_serbus.lib
Normal file
BIN
Mieke/Pack/Files/Library/armv10_serbus.lib
Normal file
Binary file not shown.
BIN
Mieke/Pack/HTBL Hollabrunn.STD-Pack.1.0.0.pack
Normal file
BIN
Mieke/Pack/HTBL Hollabrunn.STD-Pack.1.0.0.pack
Normal file
Binary file not shown.
BIN
Mieke/Pack/Screenshots/inst.png
Normal file
BIN
Mieke/Pack/Screenshots/inst.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
Mieke/Pack/Screenshots/proj.png
Normal file
BIN
Mieke/Pack/Screenshots/proj.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
BIN
Mieke/Pack/Screenshots/sel.png
Normal file
BIN
Mieke/Pack/Screenshots/sel.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
4
Mieke/Pack/gen_pack.sh
Normal file
4
Mieke/Pack/gen_pack.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
cd Files
|
||||
7z a "../HTBL Hollabrunn.STD-Pack.1.0.0.pack" * -tzip
|
||||
cd ..
|
Loading…
Add table
Add a link
Reference in a new issue