@ -6,114 +6,15 @@
# include "timer.h"
# include "i2c.h"
# include "ssd1306_i2c.h"
void timer_test ( timerNo_t timer , pinNo_t pin )
{
timerInitCounter ( timer , 4000 , 999 , downCounting ) ;
timerSart ( timer ) ;
for ( int i = 0 ; i < 10 ; i + + )
{
while ( ! timerGetUpdateInterrupt ( timer ) ) ;
timerClearUpdateInterrupt ( timer ) ;
pinToggle ( pin ) ;
}
pinWrite ( pin , 0 ) ;
}
void timer_capture_compare_test ( timerNo_t timer )
{
uint16_t i = 0 ;
timerInitCounter ( timer , 100 , 99 , downCounting ) ;
// We use pin PA3 (Arduino header A2)
//timerInitOutputCompare(timer, toggle, 4, pinA3, 2,0, 300);
timerInitOutputCompare ( timer , pwm_normal , 2 , pinB3 , 2 , 0 , 900 ) ;
timerSart ( timer ) ;
while ( 1 ) {
delayMs ( 200 ) ;
timerSetCounterCompareValue ( timer , 2 , i ) ;
i + = 10 ;
if ( i > 99 ) i = 0 ;
}
}
void printBinary32 ( uint32_t toPrint , uint8_t lsbFirst )
{
int i ;
char pt ;
if ( lsbFirst )
{
print_Usart ( usart2 , " Bit Pos | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31| " ) ;
print_Usart ( usart2 , " \n \r " ) ;
print_Usart ( usart2 , " Bits | " ) ;
for ( i = 0 ; i < 32 ; i + + )
{
pt = ( toPrint > > i ) & 1 ;
usartSendChar ( usart2 , ' ' ) ;
usartSendChar ( usart2 , pt + 0x30 ) ;
usartSendChar ( usart2 , ' | ' ) ;
}
}
else
{
print_Usart ( usart2 , " Bit Pos |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| " ) ;
print_Usart ( usart2 , " \n \r " ) ;
print_Usart ( usart2 , " Bits | " ) ;
for ( i = 0 ; i < 32 ; i + + )
{
pt = ( toPrint > > ( 31 - i ) ) & 1 ;
usartSendChar ( usart2 , ' ' ) ;
usartSendChar ( usart2 , pt + 0x30 ) ;
usartSendChar ( usart2 , ' | ' ) ;
}
}
}
void printBinary8 ( uint8_t toPrint , uint8_t lsbFirst )
{
int i ;
char pt ;
if ( lsbFirst )
{
print_Usart ( usart2 , " Bit Pos | 0| 1| 2| 3| 4| 5| 6| 7| " ) ;
print_Usart ( usart2 , " \n \r " ) ;
print_Usart ( usart2 , " Bits | " ) ;
for ( i = 0 ; i < 8 ; i + + )
{
pt = ( toPrint > > i ) & 1 ;
usartSendChar ( usart2 , ' ' ) ;
usartSendChar ( usart2 , pt + 0x30 ) ;
usartSendChar ( usart2 , ' | ' ) ;
}
}
else
{
print_Usart ( usart2 , " Bit Pos | 7| 6| 5| 4| 3| 2| 1| 0| " ) ;
print_Usart ( usart2 , " \n \r " ) ;
print_Usart ( usart2 , " Bits | " ) ;
for ( i = 0 ; i < 8 ; i + + )
{
pt = ( toPrint > > ( 7 - i ) ) & 1 ;
usartSendChar ( usart2 , ' ' ) ;
usartSendChar ( usart2 , pt + 0x30 ) ;
usartSendChar ( usart2 , ' | ' ) ;
}
}
}
# include "lcd_oled.h"
int main ( int argc , char * argv [ ] )
{
{
uint8_t i = 0 ;
uint16_t slaveAddress = 0xC0 ;
uint8_t registerToRead = 0x00 ;
uint8_t i2cRecieved = 0 ;
uint8_t i2cData = 0xFF ;
uint8_t i2cDataLenght = 1 ;
i2c_t i2c_1 ;
delayInitMs ( 8000000 , 1000 ) ; // Clock Freq and Divider for ARM library
@ -168,54 +69,54 @@ int main(int argc, char *argv[])
* - > R8 Needs to be bridged
*/
ssd1306_begin( & i2c_1 , SSD1306_SWITCHCAPVCC , SSD1306_I2C_ADDRESS ) ;
ssd1306_display( & i2c_1 ) ; //Adafruit logo is visible
lcd_oled_init( & i2c_1 , SSD1306_I2C_ADDRESS ) ;
lcd_oled_display( ) ; //Adafruit logo is visible
delayMs ( 1000 ) ;
ssd1306_clearDisplay( & i2c_1 ) ;
lcd_oled_clear( ) ;
i = 5 ;
ssd1306_drawC har( i , 5 , ' K ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' K ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' E ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' E ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' D ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' D ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' W ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' W ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' E ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' E ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' L ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' L ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' C ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' C ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' O ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' O ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' M ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' M ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' E ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' E ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' S ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' S ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' Y ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' Y ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' O ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' O ' , WHITE ) ;
i + = 6 ;
ssd1306_drawC har( i , 5 , ' U ' , WHITE , 1 ) ;
lcd_oled_print_c har( i , 5 , ' U ' , WHITE ) ;
for ( i = 15 ; i < 50 ; i + + )
{
ssd1306_drawP ixel( i , i , WHITE ) ;
lcd_oled_draw_p ixel( i , i , WHITE ) ;
}
for ( i = 15 ; i < 53 ; i + + )
{
ssd1306_drawP ixel( 15 , i , WHITE ) ;
lcd_oled_draw_p ixel( 15 , i , WHITE ) ;
}
ssd1306 _display( & i2c_1 ) ;
lcd_oled _display( & i2c_1 ) ;
delayMs ( 2000 ) ;
print_Usart ( usart2 , " \n \r " ) ;
@ -231,4 +132,3 @@ int main(int argc, char *argv[])
return 1 ;
}