diff --git a/ADC b/ADC
new file mode 100644
index 0000000..5a17e3c
--- /dev/null
+++ b/ADC
@@ -0,0 +1,92 @@
+#define iHN 9
+#define iHZ 8
+#define iVL 10
+#define LOW_U_THR 100
+
+static bool sequenceComplete, thresholdCrossed;
+uint32_t HZ, HN, VL;
+
+Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);
+Chip_SWM_EnableFixedPin(SWM_FIXED_ADC8);
+Chip_SWM_EnableFixedPin(SWM_FIXED_ADC9);
+Chip_SWM_EnableFixedPin(SWM_FIXED_ADC10);
+Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);
+
+/*disable adc pullups on pins 13,17,18*/
+Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_IOCON);
+LPC_IOCON->PIO0[IOCON_PIO17] = 0;
+LPC_IOCON->PIO0[IOCON_PIO18] = 0;
+LPC_IOCON->PIO0[IOCON_PIO13] = 0;
+
+static void ADC_Init(void){
+ Chip_ADC_Init(LPC_ADC, 0);
+ Chip_ADC_StartCalibration(LPC_ADC);
+ while (!(Chip_ADC_IsCalibrationDone(LPC_ADC))) {}
+ Chip_ADC_SetClockRate(LPC_ADC, 1000);//ADC_MAX_SAMPLE_RATE
+
+ Chip_ADC_SetupSequencer(LPC_ADC, ADC_SEQA_IDX,
+ (ADC_SEQ_CTRL_CHANSEL(iHZ) |
+ ADC_SEQ_CTRL_CHANSEL(iHN) |
+ ADC_SEQ_CTRL_CHANSEL(iVL) |
+ ADC_SEQ_CTRL_MODE_EOS));
+ /* Setup threshold 0 low and high values to about 25% and 75% of max */
+ Chip_ADC_SetThrLowValue(LPC_ADC, 0, ((1 * 0xFFF) / 4));
+ Chip_ADC_SetThrHighValue(LPC_ADC, 0, ((4 * 0xFFF) / 4));
+
+ Chip_ADC_ClearFlags(LPC_ADC, Chip_ADC_GetFlags(LPC_ADC));/* Clear all pending interrupts */
+ Chip_ADC_EnableInt(LPC_ADC, (ADC_INTEN_SEQA_ENABLE | ADC_INTEN_OVRRUN_ENABLE));/* Enable ADC overrun and sequence A completion interrupts */
+
+ /* Enable ADC NVIC interrupt */
+ NVIC_EnableIRQ(ADC_SEQA_IRQn);
+
+ /* Enable sequencer */
+ Chip_ADC_EnableSequencer(LPC_ADC, ADC_SEQA_IDX);
+}
+
+void ADC_SEQA_IRQHandler(void)
+{
+ uint32_t pending;
+
+ /* Get pending interrupts */
+ pending = Chip_ADC_GetFlags(LPC_ADC);
+
+ /* Sequence A completion interrupt */
+ if (pending & ADC_FLAGS_SEQA_INT_MASK) {
+ sequenceComplete = true;
+ }
+
+ /* Threshold crossing interrupt on ADC input channel */
+ if (pending & ADC_FLAGS_THCMP_MASK(iHN) & ADC_FLAGS_THCMP_MASK(iHZ) & ADC_FLAGS_THCMP_MASK(iVL)) {
+ thresholdCrossed = true;
+ }
+
+ /* Clear any pending interrupts */
+ Chip_ADC_ClearFlags(LPC_ADC, pending);
+}
+
+void SysTick_Handler(void)
+{
+ static uint32_t count;
+
+ /* Every 1/2 second */
+ if (count++ == 100 / 2) {
+ count = 0;
+
+ /* Manual start for ADC conversion sequence A */
+ Chip_ADC_StartSequencer(LPC_ADC, ADC_SEQA_IDX);
+ }
+}
+
+int main(void) {
+ SystemCoreClockUpdate();
+ ADC_Init();
+ SysTick_Config(SystemCoreClock / 100);
+
+ if (sequenceComplete) {
+ sequenceComplete = false;
+
+ HZ = ADC_DR_RESULT(LPC_ADC->DR[iHZ]);
+ HN = ADC_DR_RESULT(LPC_ADC->DR[iHN]);
+ VL = ADC_DR_RESULT(LPC_ADC->DR[iVL]);
+ }
+}
\ No newline at end of file
diff --git a/GPIO_setup b/GPIO_setup
new file mode 100644
index 0000000..1725282
--- /dev/null
+++ b/GPIO_setup
@@ -0,0 +1,19 @@
+#define LED1 8
+#define LED2 9
+
+static void GPIOInit(void) {
+ /* Enable the clock GPIO */
+ Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO);
+ /*disable default fixed pins*/
+ Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);
+ Chip_SWM_DisableFixedPin(SWM_FIXED_XTALIN); //pin 8
+ Chip_SWM_DisableFixedPin(SWM_FIXED_XTALOUT); //pin 9
+ Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);
+
+ /* red */
+ Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, LED1);
+ Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, LED1, false);
+ /* green */
+ Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, LED2);
+ Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, LED2, false);
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 18e7a53..84199b2 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,10 @@
# NXP_examples
-Example code for NXP LPC824 MCU
\ No newline at end of file
+priklady pro ukontrolery od NXP
+
+pro vyuziti techto prikladu, je potreba mit naimportovane jednotlive example projekty, hlavne lpc_chip_XXx (lpc_chip_82x)
+import exampu je nasledovny:
+File->Open Projects from Fyle System...->Archive...->C:\nxp\MCUXpressoIDE\ide\Examples\LPCOpen\archiv k danemu procesoru
+
+projekt se vytvori nasledovne:
+File->New->C/New LPCXpresso C Project->Preinstalled MCUs(pozadovany procesor)->LPCOpen - C Project->pojmenovat projekt->LPCOpen Chip Library Project (vyprat projekt k danemu procesoru)->az se dostanes k Other options tak zaskrtnout Create 'inc' directory and add to path->Finish
\ No newline at end of file
diff --git a/UART b/UART
new file mode 100644
index 0000000..94644b3
--- /dev/null
+++ b/UART
@@ -0,0 +1,149 @@
+#include "chip.h"
+#include "string.h"
+
+#define DE 26
+#define RX 27
+#define TX 16
+
+#define UART_RB_SIZE 64
+#define LPC_USART LPC_USART1
+#define LPC_IRQNUM UART1_IRQn
+#define LPC_UARTHNDLR UART1_IRQHandler
+#define UART_BAUDRATE 19200
+
+STATIC RINGBUFF_T txring, rxring;
+static uint8_t rxbuff[UART_RB_SIZE], txbuff[UART_RB_SIZE];
+
+const char inst1[] = "Blocking Test\n";
+const char inst2[] = "NonBlocking Test\n";
+
+static void delay(uint32_t cntr) {
+ /* very simply delay routine */
+ while(cntr>0) { /* burn some cycles */
+ cntr--;
+ __asm volatile("nop\n");
+ }
+}
+
+static void Init_UART_PinMux(void)
+{
+ Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);
+ Chip_Clock_SetUARTClockDiv(1);
+ Chip_SWM_MovablePinAssign(SWM_U1_TXD_O, TX); //U1 = uart1, options: 0,1,2 for LPC824
+ Chip_SWM_MovablePinAssign(SWM_U1_RXD_I, RX);
+ Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);
+
+ Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, DE);
+ Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, DE, false);
+}
+
+static void UART_Init(void){
+ Init_UART_PinMux();
+
+ Chip_UART_Init(LPC_USART);
+ Chip_UART_ConfigData(LPC_USART, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
+ Chip_Clock_SetUSARTNBaseClockRate((UART_BAUDRATE * 16), true);
+ Chip_UART_SetBaud(LPC_USART, UART_BAUDRATE);
+ Chip_UART_Enable(LPC_USART);
+ Chip_UART_TXEnable(LPC_USART);
+
+ RingBuffer_Init(&rxring, rxbuff, 1, UART_RB_SIZE);
+ RingBuffer_Init(&txring, txbuff, 1, UART_RB_SIZE);
+
+ Chip_UART_IntEnable(LPC_USART, UART_INTEN_RXRDY);
+ Chip_UART_IntDisable(LPC_USART, UART_INTEN_TXRDY);
+
+ NVIC_EnableIRQ(LPC_IRQNUM);
+ Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, DE, true);
+ Chip_UART_SendBlocking(LPC_USART, inst1, sizeof(inst1));
+ Chip_UART_SendRB(LPC_USART, &txring, inst2, sizeof(inst2));
+ delay(0x800);
+ Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, DE, false);
+}
+
+void LPC_UARTHNDLR(void)
+{
+ /* Want to handle any errors? Do it here. */
+
+ /* Use default ring buffer handler. Override this with your own
+ code if you need more capability. */
+ Chip_UART_IRQRBHandler(LPC_USART, &rxring, &txring);
+}
+
+void dbg(unsigned long n){//16.7
+ char operator = '+';
+ if(n > 4294967296/2){
+ n = 4294967296 - n;
+ operator = '-';
+ }
+ char tmp[11];
+ int i = sizeof(tmp);
+ for(int j = 0; j 9){
+ return number + 55;
+ }
+ else{
+ return number + 48;
+ }
+}
+
+void dbg_ASCII(uint8_t *arr, int size){ //array charu nebo char a prevede to na ascii, mysleno hlavne pro HEX
+ for(int i = 0; i> 4) & 0x0f;
+ hi = intToAscii(hi);
+ lo = intToAscii(lo);
+ Chip_UART_SendBlocking(DBG_USART, &hi, 1);
+ Chip_UART_SendBlocking(DBG_USART, &lo, 1);
+ Chip_UART_SendBlocking(DBG_USART, &" ", 1);
+ }
+ dbg_nl();
+}
+
+int main(void) {
+ SystemCoreClockUpdate();
+
+ UART_Init();
+
+ while(1) {
+ uint8_t byte;
+ uint8_t rec[UART_RB_SIZE];
+
+ if(RingBuffer_IsEmpty(&rxring) != 1){
+ for(int i = 0; i 4294967296/2){
+ n = 4294967296 - n;
+ operator = '-';
+ }
+ char tmp[11];
+ int i = sizeof(tmp);
+ for(int j = 0; j 9){
+ return number + 55;
+ }
+ else{
+ return number + 48;
+ }
+}
+
+void dbg_ASCII(uint8_t *arr, int size){
+ for(int i = 0; i> 4) & 0x0f;
+ hi = intToAscii(hi);
+ lo = intToAscii(lo);
+ Chip_UART_SendBlocking(DBG_USART, &hi, 1);
+ Chip_UART_SendBlocking(DBG_USART, &lo, 1);
+ Chip_UART_SendBlocking(DBG_USART, &" ", 1);
+ }
+ dbg_nl();
+}
+
diff --git a/debugTools.h b/debugTools.h
new file mode 100644
index 0000000..5b491ea
--- /dev/null
+++ b/debugTools.h
@@ -0,0 +1,18 @@
+/*
+ * debugTools.h
+ *
+ * Created on: 12. 10. 2020
+ * Author: Adcis
+ */
+
+#ifndef DEBUGTOOLS_H_
+#define DEBUGTOOLS_H_
+
+#include "chip.h"
+
+void DebugInit(LPC_USART_T *pUART);
+void dbg_nl();
+void dbg(unsigned long n);
+void dbg_ASCII(uint8_t *arr, int size);
+
+#endif /* DEBUGTOOLS_H_ */