PSoC™ 4 Forum Discussions
Which software can we use to open the desing files.????????
Hi,
I have a program that is crashing and ending up in the while loop in CY_NORETURN CY_ISR(IntDefaultHandler).
I thought this was a pretty straight forward program, but it ends up crashing, whether it takes a minute, or 24 hours, it happens.
Please look through the code and let me know if there are any obvious, or subtle problems that might be causing this.
I have a version of the program that just uses a CyDelay instead of the timer, and seems to work fine, but I cannot see what i am doing incorrectly with the timer.
Thank you,
Tom
Hello,
I would like to share this small project that was my first project with a PSoC, it’s a small AM transmitter with a small range but it works. The frequency is 1MHz.
Thank you,
Best regards,
João Nuno Carvalho
Show LessHi all,
Does anyone have an example project of something that would look like this?
UART -> PROC/PSOC BLE -> which connects to BLE slave device
The *Soc would need to perform a few GATT characteristic writes to specific handles and also recieve notifications? Any help would be greatly appreciated. I'm also looking at this project, but I feel like I am missing something to do exactly those things : http://www.cypress.com/?rID=110262&cache=0
Show LessHi,
I have a few projects that have outgrown the memory requirements of the current PSOC 4s. The CY8C4247AZI in the kit, and even the (presumably cheaper) CY8C4245AZA-M443 in the designer seem to work.
Two questions:
- When can we expect the release of these parts?
- Why is my existing EM_EEPROM from my old project non existant in Creator 3.2?
Thank you,
Tom
Hi,
I am new to development on the Cypress PSOC4 BLE module. I am simply trying to set an output pin Logic High for 1 sec and then switch to logic 0.
My problem is when I use the LED pin on board P2.6 , it works, however when I switch to any of the GPIO pins, for example P0.2, the LED is always on, even when my code is switched to 0. It is as if those pins are configured to be always high.
Any idea how to fix this?
Thanks.
Best regards,
Eugenia
Show LessHello everyone
I am completely new to psoc environment and i have to do a task based on psoc 4 and Labview. The main idea is , the psoc 4 CY8CKIT-042 pioneer kit is used to count the values from the Geiger counter and display the count on Lcd. As the psoc 4 kit is used to count the values and display it on Lcd, now i have to transfer those counts to the Labview in PC and later display the respective counts in Labview. And i have only a basic idea about Labview. So i am posting this post to get the help from this forum, so that i can do the project with your help. Please suggest me how to do this task.
Thank you,
Show Lesshi i want to control a switch based on time from app i should set the service to on and off so what kind of profile and service i should use??
Show LessHello,
In attachment i send an PSoC 4 example project that compares the several ways to toggle a pin.
#include <project.h>
volatile uint32 volatile_reg_val_1;
volatile uint32 volatile_reg_val_0;
int main()
{
// Settings:
// 3.3V 48MHZ Compilation in Release mode.
// Note: Sould be equal with 5V.
///////////////////
// Hardware Max Speed
///////////
// Case 6 Pin toogle max speed: 24MHz
///////////
Clock_HD_MAX_SPEED_Start();
PWM_hardware_max_speed_Start();
////////////////////
////////
// Note: Pin_Soft is the name od the pin componente in the diagram.
Pin_Soft_DR |= Pin_Soft_MASK; // Sets pin
volatile_reg_val_1 = Pin_Soft_DR;
Pin_Soft_DR &= ~Pin_Soft_MASK; // Clear pin
volatile_reg_val_0 = Pin_Soft_DR;
for(;;)
{
///////////
// Case 1 Pin toogle max speed: 855KHz
///////////
// Slowest.
Pin_Soft_Write(0u); // Clear pin
Pin_Soft_Write(1u); // Set pin
Pin_Soft_Write(0u); // Clear pin
///////////
// Case 2 Pin toogle max speed: 2.65MHz
///////////
// Intermediate speed (equal speed to the next case, safe way)
CyPins_ClearPin(Pin_Soft_0); // Clear pin
CyPins_SetPin(Pin_Soft_0); // Set pin
CyPins_ClearPin(Pin_Soft_0); // Clear pin
///////////
// Case 3 Pin toogle max speed: 2.65MHz
///////////
// Intermediate speed (equal speed to the next case, safe way)
Pin_Soft_DR &= ~Pin_Soft_MASK; // Clear pin
Pin_Soft_DR |= Pin_Soft_MASK; // Sets pin
Pin_Soft_DR &= ~Pin_Soft_MASK; // Clear pin
///////////
// Case 4 Pin toogle max speed: 4MHZ
///////////
// Second fastest speed (equal speed to the next case, unsafe way)
// Volatile.
Pin_Soft_DR = volatile_reg_val_0; // Clear pin (afects all register (dangerous because can afect all bits)
Pin_Soft_DR = volatile_reg_val_1; // Sets pin (afects all register ( " )
Pin_Soft_DR = volatile_reg_val_0; // Clear pin (afects all register ( " )
///////////
// Case 5 Pin toogle max speed: 6MHz
///////////
uint32 local_val_1 = volatile_reg_val_1;
uint32 local_val_0 = volatile_reg_val_0;
// Fastest speed (equal speed to the previous case, unsafe way)
// Without volatile varibels [it uses only one ARM assembly instruction the STR [store to register],
// because the value of one and zero is already in the register].
Pin_Soft_DR = local_val_0; // Clear pin (afects all register (dangerous because can afect all bits)
Pin_Soft_DR = local_val_1; // Sets pin (afects all register ( " )
Pin_Soft_DR = local_val_0; // Clear pin (afects all register ( " )
}
}
Best regards,
João Nuno Carvalho
Show Less
I'm using a fast loop to just read the outputs of the SARADC into some TCPWMs. It mostly works, but there are glitches. The glitches are all "full on" periods. The glitches are not in any way synchronized with incoming data: they are still there with dc in. The ADC is set to 10 bits (single ended, no averaging), and in fact I masked out any potential high bits that might be set (I'm also shifting the data right) just in case that was the problem (the docs for the ADC use dashes not zeroes for the Right/Unsigned format, and just in case they don't really mean that null is 0, I tried this). I also put in a test: if the ADC was not ready I forced the reading to zero. Neither step helped, so I'm suspecting that the fast, repetative, writes to the PWMs are the problem and that sometimes the Compare register is being written while it is also being used?
I'm having trouble understanding the meaning of section 17.3.4.2 of the 4100/4200 TRM: does this mean that just writing to the Buffer Compare register needs to be synchronized with TC in software? (For my application the period register is fixed at 1023, so I'd not have to update that.)
The only ISR I'm using is one from the SCB in SPIS mode: that is working fine. I'm using it to receive global variables which control the shifting (right) of the data received from the ADC into the PWMs. Again, that works.
I interpreted the double headed arrow in 17.3.4.1 (etc.) to imply a "ping-pong" type of configuration where the software writes to the "Buffer compare" register while the "Compare" register is "live". Is this wrong? And what is a "switch event"? If that originates with the switch input then I don't have any..but the PWM is being updated, and most of the time with the right data, so what is the actual architecture?
I'm using a CY8CKIT-049-42.
{First posting, man this Forum software is bad..I know you all know this from other comments !}
Show Less