Sign in to follow this  
mine1

MSP430 HAL

1 post in this topic

mine1    0

Наткнулся на библиотеку hal_xxx.c от TI для MSP430.
Ни как не могу найти, где взять взять полное семейство этих библиотек. Поделитесь ссылочной :buba: 

hal_UCS.c

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Similar Content

    • By SerYoga72
      Приветствую всех.
      Подскажите не совсем программисту (или совсем не программисту) как грамотно реализовать программный SPI. МК CC430F5137 + OLED дисплей WEH000802A от Winstar. Данные 10 бит. Аппаратный в контроллере позволяет только 8, выход свой написать. Написал, но мне это не нравиться, знаю что можно намного проще, но не нахожу решения. Да и как то странно с портами в этом контроллере работается, нельзя (или не знаю как) данные напрямую в порт кидать, типа P1.0 = 1; А только BITами оперировать??? Вот что у меня получилось, смеяться разрешается ))
      // Обработчик дисплея // // Маразм для програмного SPI void SCL(uchar b) { if (b==1) (P1OUT |= BIT7); else P1OUT &= ~BIT7; } //Строб void CSB(uchar b) { if (b==1) (P1OUT |= BIT4); else P1OUT &= ~BIT4; } //Выбор чипа void SDI(uchar b) { if (b==1) (P1OUT |= BIT6); else P1OUT &= ~BIT6; } //Передаваемые данные void SDO(uchar b) { if (b==1) (P1OUT |= BIT5); else P1OUT &= ~BIT5; } //Принимаемые данные // Вывод управляющей команды для дисплея void WriteCMD(uchar CMD) { uchar i; CSB(0); SDI(0); _delay_cycles(100); SCL(0); _delay_cycles(100); SCL(1); SDI(0); _delay_cycles(100); SCL(0); _delay_cycles(100); SCL(1); _delay_cycles(100); for(i=0;i<8;i++) { uchar t = ((CMD>>(7-i)) & 0x01); // Как уйти от переменной t ????? SDI(t); SCL(0); _delay_cycles(100); SCL(1); _delay_cycles(100); } CSB(1); } /*============================================ Вывод одиночного символа на дисплей ============================================*/ void WriteOneDAT(uchar DAT) { uchar i;; CSB(0); SDI(1); _delay_cycles(100); SCL(0); _delay_cycles(100); SCL(1); SDI(0); _delay_cycles(100); SCL(0); _delay_cycles(100); SCL(1); _delay_cycles(100); for(i=0;i<8;i++) { uchar t =((DAT>>(7-i)) & 0x01); SDI(t); SCL(0); _delay_cycles(100); SCL(1); _delay_cycles(100); } CSB(1); } Технически разница между Командой и Данными в первом бите SDI и объединить эти две функции наверно не проблема, но я уверен что это можно написать как то грамотнее ...  Как в этом контроллере с портами работать кроме как P1OUT |= BIT1 ??? Нельзя как то типа P1OUT_1 = 1;  ?? Где то в буржуйской литературе мапинг какой то проскакивал, но там я вообще не вьехал про что это, для чего это....
      Заранее Всем Благодарен.
       
       
       
       
       
    • By В гостях у Slime
      Здравствуйте, мне нужна помощь с подключением дисплея WG12864 к STM32F103C8T6. А именно? Я не нашёл библиотек для него, лишь только ардуиновские. Может у кого есть своя? С STM32 опыта почти нет. Так мигал светодиодом и всё, но зато ардуину я уже знаю всё. Я перерос её и мне хочется освоить стм.
    • By TIGER53501
      Привет, никак не могу разобраться с таймером в режиме сброса по внешнему событию,
      сам сброс работает, таймер сбрасывается, вопрос вот в чём, могу ли я в этом режиме использовать захват на оставшихся каналах?
      т.е. по внешнему событию сбрасывать таймер, и потом внешними событиями записывать сколько он протикал с момента сброса?
      STM32F429ZI
      СИ + VisualGDB + HAL + Cube
    • By Kirill Lubinets
      Надо с stm32f303vc отправить массив через SPI на радио модуль nRF24l01+ и принять другим nRF24l01+, сохранить изменения в другой массив).
      Эту удачную передачу отметить активацией светодиода (их на отладке 8 штук).
       
      Кон фигурирую проект в CubeMX
      Компилирую и занимаюсь отладкой в EWARM
      P.S. В сети есть пара примеров, но они не взаимодействуют с библиотекой HAL, а значит надо всё переписывать.
      P.S.S. даташиты изучаю, но там такое количество битов и регистров что я в них  банально путаюсь.
       
      Ссылка на мои старания, но без успешные.
      https://1drv.ms/f/s!Ann2CRUC07O49m1X_PqH1Q7AsPQ4





    • By Isaev_ivan
      Доброго времени суток всем!
      Недавно возникла потребность передачи данных из микроконтроллера в ПК. Написал код на ассемблере, опираясь на Code_examples от TI, и то, что получилось, приведено ниже:
      #include "msp430F1232.h"
      RSEG CSTACK
      DS16 0
      RSEG CODE
      ;---------------------------------------------------------------------
      ; Установка тактирования от кварца
      ;---------------------------------------------------------------------
      RESET mov #SFE(CSTACK),SP
      mov #WDTPW+WDTHOLD,&WDTCTL ;OSTANOVKA WDT
      BIC #OSCOFF, SR ; tAKTIROVANIE OT KVARCA
      BIS.B #XTS, BCSCTL1
      L1 BIC.B #OFIFG, &IFG1
      MOV #0FFh, R15
      L2 DEC R15
      JNZ L2
      BIT.B #OFIFG, &IFG1
      JNZ L1
      BIS.B #SELM_3, &BCSCTL2
      ;--------------------------------------------------------------------
      ; Инициализация USART
      ;--------------------------------------------------------------------
      mov.b #200,R7
      bis.b #SWRST,&UCTL0;
      bis.b #030h,&P3SEL; P3.4,5 - USART
      bis.b #UTXE0+URXE0,&ME2; Включение передачи и приема
      bis.b #CHAR, &UCTL0; Формат данных 8-разрядный
      mov.b #SSEL0, &UTCTL0; UCLK=ACLK
      mov.b #0100b,&UBR00; 5MHz/19200 = 260.4 = 100000100b
      mov.b #0001b,&UBR10;
      mov.b #0000, &UMCTL0; Без модуляции
      bic.b #SWRST,&UCTL0; Сброс USART не включен
      bis.b #URXIE0+UTXIE0,&IE2
      bis.b #UTXIFG0,&IFG2; Флаг гтовности к прерыванию
      Loop bis.w #LPM3+GIE,SR
      nop
      jmp Loop
      ;-------------------------------------------------------------------
      USART0TX_ISR;
      ;-------------------------------------------------------------------
      mov.b R7, &TXBUF0;
      reti
      ;--------------------------------------------------------------------
      ; Векторы прерываний
      ;--------------------------------------------------------------------
      COMMON INTVEC
      ORG RESET_VECTOR
      DW RESET
      ORG USART0TX_VECTOR
      DW USART0TX_ISR
      END.
      Из программы видно, что я просто хочу передать содержимое R7 в ПК. Трудность заключается в том, что это значение передается не всегда. Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200. И я не пойму, что с ней происходит! Кто знает, отзовитесь пожалуйста