Commit Graph

162 Commits

Author SHA1 Message Date
Maxim Reznik 22ae2aea53 Add more readme files. 2023-12-06 16:38:32 +02:00
Maxim Reznik 3d584b8f9b Add XPT2046 touch panel driver 2023-12-06 16:38:32 +02:00
Maxim Reznik 724b7462a4 Add TFT LCD ILI9341 to STM32 F4VE board. 2023-12-06 16:38:32 +02:00
Maxim Reznik b60639de8b Add optimized version of Fill and Copy_Rect 2023-12-06 16:38:32 +02:00
Maxim Reznik 639e9031fb Split ili9341 into several files
* ili9341-device.ads - generic driver for display
* ili9341-spi_connector.ads - the chip with SPI interface
* ili9341-device-bitmap.ads - implement Bitmap API on the ILI9341 RAM
* ili9341-rgb_spi_device.ads - display with RGB interface
2023-12-06 16:38:32 +02:00
Maxim Reznik dfbc15d772 Add more READMEs 2023-12-06 16:38:32 +02:00
Maxim Reznik f607a9a7b7 Add HAL for flash memory chips and an example
for w25q16bv on stm32f4xx_m.
2023-10-14 18:17:58 +03:00
Fabien Chouteau 13b379aad3
Switch to GNAT FSF 12 support (#418)
* Switch to GNAT FSF 12 support

* GNAT FSF 12 in GitHub CI

* Update README.md

* Remove run-time dependency build script that is not compatible with GNAT FSF

This script is also not needed as all the BSPs are included in GNAT FSF.
2023-01-02 11:34:55 +01:00
Rolf Ebert 9e3933a635
add new IO expander MCP23017 (2x8bits) (#415)
* add new IO expander MCP23017 (2x8bits), copying the design of the existing MCP23008

* correct casing style issues, revert to parenthesis for array access

* correct more style issues
2022-11-07 10:40:51 +01:00
Rolf Ebert 3c04f38bed
implement function Mode to fix issue #412 (#413) 2022-07-28 18:15:41 +02:00
Rolf Ebert 791616adf3
New component: text LCD (#405)
* new component: the old pcf8574 8bit io-expander.

* correct interface to current HAL (v0.3)

* make address and I2C_Port discriminants, so that variables cannot be declared without initialization

* cleared style issues (missing blanks) and made the type limited

* first working version of a HD44780 LCD driver, based on I2C PCF8574

* use controlling parameter directly in in out mode, not the pointer to class wide

* make the call to Output dispatching

* corrected GNAT style issues

* add support for user defined custom characters

* use standard Adacore copyright notice

* remove unneeded with clause
2022-06-14 09:45:25 +02:00
Simon Wright ac2a336f16 Add support for the ST VL53L1X Time-of-Flight sensor. 2022-01-24 11:50:19 +01:00
Simon Wright dfaebbc1a5 Rework PMW3901 calibration parameters.
Uses timing/calibration parameters from github PX4/PX4-Autopilot\
/blob/master/src/drivers/optical_flow/pmw3901/PMW3901.cpp.

  * components/src/motion/pmw3901/pmw3901.adb (Initialize): delays to
      match PX4 code.
    (Calibrate): likewise, plus calibration data.
2021-11-30 10:25:14 +01:00
Simon Wright e49974bf3c Components: add I2C, SPI drivers for LPS25H barometric sensor. 2021-11-30 10:17:52 +01:00
Fabien Chouteau dfb681724f
SGTL5000: fix I2C_Write and a few config procedures (#389)
The current implementation worked fine on the STM32F4, but it could be
because the I2C Mem_Write is not correctly implemented for this
microcontroller.
2021-07-22 10:04:52 +02:00
Ahmed Hamdy 663a729926
LSM303AGR driver implementation (#380) 2021-01-08 12:19:47 +01:00
Fabien Chouteau 93f7045a3c
components: add driver for solder.party BBQ10 keyboard I2C interface (#368) 2020-09-18 13:17:48 +02:00
Jeremy Grosser 830fde073a
PCD8544 LCD driver (#364) 2020-09-17 14:49:10 +02:00
Simon Wright 87cd0d4165
Add PMW3901 (flow) sensor support (2). (#348)
* Added PMW3901 (flow) sensor support.
Includes general-purpose check for whether this SPI port is clocked.

  * components/src/motion/pmw3901/pmw3901.ads: new.
  * components/src/motion/pmw3901/pmw3901.adb: new.

  * components/src/motion/pmw3901/pmw3901-is_clocked.adb: new. The
      check for the associated SPI port being clocked is implemented
      as a separate because it really belongs in the Device package.

* PMW3901 driver no longer depends on STM32.

  * components/src/motion/pmw3901/pmw3901.ads: remove dependency on
      STM32, replace by HAL equivalent.
    (Initialize): replace precondition using Is_Clocked to 'not
      Is_Initialized'.
    (Is_Clocked): removed.
  * components/src/motion/pmw3901/pmw3901.adb: likewise.
  * components/src/motion/pmw3901/pmw3901-is_clocked.adb: removed.

* PMW3901 copyright/clarity updates.

  * components/src/motion/pmw3901/pmw3901.adb: Updated copyright
      notice, as requested.
  * components/src/motion/pmw3901/pmw3901.ads: Likewise.
    (Motion's rep spec): moved to private part, to reduce clutter.
2020-06-09 16:17:28 +02:00
Simon Wright 26e722d271 Use HAL.Time facilities.
* components/src/range_sensor/VL53L0X/vl53l0x.ads
    (VL53L0X_Ranging_Sensor): add discriminant Timing.
    (Read_Range_Single_Millimeters): no longer generic.
  * components/src/range_sensor/VL53L0X/vl53l0x.adb
    (Read_Range_Single_Millimeters): use This.Timing.Delay_Milliseconds.
2020-04-21 11:29:40 +02:00
Simon Wright 58e62bf2e5 Remove VL53L0x dependence on Ada.Real_Time
* components/src/range_sensor/VL53L0X/vl53l0x.ads
    (Read_Range_Single_Millimeters): made into a generic requiring a
      procedure Delay_Milliseconds.
  * components/src/range_sensor/VL53L0X/vl53l0x.adb
    (Read_Range_Single_Millimeters): calls Delay_Milliseconds rather
      than an explicit 'delay until'.
2020-04-21 11:29:40 +02:00
Simon Wright 52131568d5 Added pre/postconditions to ensure measurements possible.
Avoids endless loops waiting for measurement to be indicated.

  * components/src/range_sensor/VL53L0X/vl53l0x.ads: Added
      postconditions to check that GPIO Functionality has been set as
      specified to Static_Init, Set_GPIO_Config.
      Added preconditions to check that GPIO Functionality is
      New_Sample_Ready (i.e. that there will be such an indication) to
      Perform_Ref_Calibration, Start_Continuous,
      Start_Range_Single_Millimeters, Range_Value_Available,
      Read_Range_Single_Millimeters, Set_VCSEL_Pulse_Period_Pre_Range,
      Set_VCSEL_Pulse_Period_Final_Range, Set_VCSel_Pulse_Period.
    (Get_GPIO_Functionality): new.
  * components/src/range_sensor/VL53L0X/vl53l0x.adb
    (Get_GPIO_Functionality): new.
2020-04-21 11:29:40 +02:00
Simon Wright faa1d39933 Adds automatic continuous reading to the VL53L0X range sensor.
A translation of the Crazyflie Flow Deck (v1) support code.

  * components/src/range_sensor/VL53L0X/vl53l0x.ads (Read_Revision): new.
    (Start_Continuous): new.
  * components/src/range_sensor/VL53L0X/vl53l0x.adb (Read_Revision): new.
    (Read_Range_Single_Millimeters): use 1 ms delay in loop while waiting
      for Range_Value_Available.
    (Start_Continuous): new.
2020-04-21 11:29:40 +02:00
Fabien Chouteau a378e04217 Add support for IS31fl3731 LED matrix driver 2020-01-03 10:02:15 +01:00
Fabien Chouteau eb5fa3782e ST7735R: improve drawing performances in buffer-less mode 2018-10-26 19:32:51 +02:00
Fabien Chouteau 09a8d57920 Components: Improve MMA8653 driver 2018-07-13 19:44:34 +02:00
Fabien Chouteau 4d32971732 HAL.GPIO: Switch to a capability system
Instead of returning False when a configuration is not supported, users
can call a function beforehand to know if it is supported. The
capability is also now a precondition of the setup procedures.
2018-07-11 18:46:16 +02:00
Fabien Chouteau 571f0d2f1a Remove unused project files 2018-04-27 21:16:41 +02:00
Fabien Chouteau 36f137ad18 Fix "use clause for has no effect" errors 2018-03-09 16:59:59 +01:00
Fabien Chouteau a0d3a78bc1 SGTL5000: Fix some typos 2017-12-04 00:09:50 +01:00
Fabien Chouteau 71db1abc3e AdaFruit.Thermal_Printer: Add a procedure to print HAL.Bitmap 2017-10-18 17:38:47 +02:00
Fabien Chouteau 9cb9fc0bd9 SSD1306: Fix initialization for 128x64 displays 2017-08-25 18:09:09 +02:00
Fabien Chouteau 91b68d0e49 SSD1306: Override procedure Fill with a faster implementation 2017-08-18 18:52:10 +02:00
Fabien Chouteau 9a512a7fa0 Merge pull request #206 from AdaCore/ssd1306_fix
Fix SSD1306 drawing by overriding missing pixel primitives
2017-08-07 11:12:12 +02:00
Fabien Chouteau 87d8dfb09e ST7735R: Change SPI data transmit to send all pixels at once
This allow for fast DMA transfer
2017-07-06 22:07:19 +02:00
Fabien Chouteau 1780c8728b SSD1306: override remaining pixel primitives 2017-07-02 18:31:38 +02:00
Fabien Chouteau 384c43ace8 Merge pull request #204 from AdaCore/gpl2017_migration
GNAT wavefront/GPL2017 migration
2017-06-28 19:23:33 +02:00
Fabien Chouteau 3a7945c20a Use new GPRbuild attribute: Create_Missing_Dirs
And remove now useless .gitignore files and empty directories.
2017-06-27 15:58:10 +02:00
Jerome Lambourg b4acbb9ad9 Further refactor the board projects.
This commit in particular removes the need for aggregate projects.
2017-06-26 18:18:59 +02:00
Jerome Lambourg a63e6fc852 Fix the examples. 2017-06-26 18:18:58 +02:00
Fabien Chouteau 3e1dacbb68 Components: Add SGTL5000 DAC support 2017-06-14 22:50:42 +02:00
Lambourg Jérôme 751f0489df Merge pull request #194 from AdaCore/bno055_fixes
Minor fixes in the BNO055 IMU component.
2017-05-19 20:53:50 +02:00
Jerome Lambourg 2eaab4f787 Fix naming convention in vl53l0x 2017-05-19 17:21:34 +02:00
Jerome Lambourg d2efcc000b Revert partially the change in Set_Mode.
The delay identifier was correct...
2017-05-19 16:52:19 +02:00
Jerome Lambourg 19a93e8bce Minor fixes in the BNO055 IMU component. 2017-05-19 15:41:30 +02:00
Jerome Lambourg 2671b177fb Add support for the ST VL53L0x Time-of-Flight sensor. 2017-05-19 15:38:27 +02:00
Fabien Chouteau c10a6bada0 HAL.Bitmap: Simplify interface with notion of source color
There are two color formats in HAL.Bitmap, the Bitmap_Color (with Alpha,
Red, Green, Blue components) and the "native" raw value of the pixel.

In the current interface users select a color for each operations (Fill,
Draw_Line, Draw_Circle, etc.) which means each operation has to be
declared twice, one with a Bitmap_Color and one with native pixel value.

Inspired by the Cairo graphics library, this patch add a Set_Source
primitive which allows to specify the color that will be use. Each
drawing operation then uses this color for rendering.

This simplifies the interface since drawing operation only have to be
declared once. It may also allow for more advanced sources in the future
like gradients or textures.
2017-05-10 00:59:13 +02:00
Fabien Chouteau 77f1696ba8 Components\ST7735R: Fix type name 2017-02-26 20:30:50 +01:00
Fabien Chouteau 7b43eb2e50 Components: Add SSD1306 OLED screen driver support 2017-02-26 20:30:50 +01:00
Fabien Chouteau 050e92062c Merge pull request #144 from AdaCore/microbit_time_io_twi
Micro:Bit add time, ADC and buttons, fix TWI (I2C)
2017-02-24 19:31:54 +01:00