Am 12.10.2017 um 14:24 schrieb Timo Fuckner:
> Ok so I just removed the unnecessary stuff and created a minimal example:
>
> https://pastebin.com/QPE14keu
>
> Writing a 0x01 in ADC1_CR1 results on 0x00 when read out.
>
> Regards,
> Timo
I cna reproduce the issue using curretn SDCC on my STM8L-Discovery with
this code:
// Source code under CC0 1.0
#include <stdint.h>
#include <stdio.h>
#define PC_DDR (*(volatile uint8_t *)0x500c)
#define PC_CR1 (*(volatile uint8_t *)0x500d)
#define EVER (;;)
//ADC Registers
#define ADC1_CR1 (*(volatile uint8_t *)0x5340)
#define ADC1_CR2 (*(volatile uint8_t *)0x5341)
#define ADC1_CR3 (*(volatile uint8_t *)0x5342)
//Clock
#define CLK_DIVR (*(volatile uint8_t *)0x50C0)
#define CLK_PCKENR1 (*(volatile uint8_t *)0x50C3)
#define CLK_PCKENR2 (*(volatile uint8_t *)0x50C4)
//USART
#define USART1_SR (*(volatile uint8_t *)0x5230)
#define USART1_DR (*(volatile uint8_t *)0x5231)
#define USART1_BRR1 (*(volatile uint8_t *)0x5232)
#define USART1_BRR2 (*(volatile uint8_t *)0x5233)
#define USART1_CR2 (*(volatile uint8_t *)0x5235)
#define USART1_CR3 (*(volatile uint8_t *)0x5236)
#define USART_CR2_TEN (1 << 3)
#define USART_CR3_STOP2 (1 << 5)
#define USART_CR3_STOP1 (1 << 4)
#define USART_SR_TXE (1 << 7)
// we need to provide putchar, as it is controller specific
int putchar(int c)
{
while(!(USART1_SR & USART_SR_TXE));
USART1_DR = c;
return(c);
}
void uart_init(void)
{
PC_DDR = 0x08; // Put TX line on
PC_CR1 = 0x08;
USART1_CR2 = USART_CR2_TEN; // Allow TX and RX
USART1_CR3 &= ~(USART_CR3_STOP1 | USART_CR3_STOP2); // 1 stop bit
USART1_BRR2 = 0x03; USART1_BRR1 = 0x68; // 9600 baud
}
void main(void)
{
unsigned long i = 0;
CLK_DIVR = 0x00; // Set the frequency to 16 MHz
CLK_PCKENR1 |= 0xFF; //(1 << 5) & (1 << 7); // Enable peripherals
UART & ADC
uart_init();
printf("Restarted...\r\n");
for EVER
{
ADC1_CR1 = 0x01;
printf("ADC1_CR1: %X\r\n", ADC1_CR1);
for(i = 0; i < 0xFFFFF; i++); // Sleep
}
}
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user